home *** CD-ROM | disk | FTP | other *** search
/ GameSpot.it / GameSpot Italia (2001).bin / demo / severancedemo / data1.cab / Program_Files / Maps / Ragnar_M2 / DefFuncs.py < prev    next >
Text File  |  2000-10-13  |  92KB  |  2,549 lines

  1. import def_class
  2. import Bladex
  3. import EnemyTypes
  4. import ReadGSFile
  5. import Enm_Gen
  6. import B3DLib
  7. import Traps_C
  8. import GameText
  9. import AuxFuncs
  10. import Scorer
  11. import Sounds
  12. import EnmGenRnd
  13. import ReadGSFile
  14. import Actions
  15. import Reference
  16. import Sounds
  17. import stone
  18. import heavyObjects
  19. import Room
  20. import Button
  21. import GotoMapVars
  22. import ScriptSkip
  23. import AbreCam
  24. import MusicTool
  25.  
  26. #*************************************************************************************************
  27. #*************************************************************************************************
  28. #*************************************************************************************************
  29. #*******************************                                        **************************
  30. #*******************************   Definiciones para agua.py            **************************
  31. #*******************************                                        **************************
  32. #*************************************************************************************************
  33. #*************************************************************************************************
  34.  
  35.  
  36. def eSceneCam(sector,entity) :
  37.     if entity == "Player1":
  38.         scam.OnEnter = ""
  39.         darfuncs.LaunchMaxCamera("ragnar_verPatrulla.cam",0,-1)
  40.         Bladex.ExeMusicEvent(Bladex.GetMusicEvent("presentapatio"))
  41.         Bladex.AddScheduledFunc(Bladex.GetTime()+7.0, MusicTool.LaunchMusicEvent, ("emptyloquesea",))
  42.  
  43. def CreateCascada1(Cascada,p,d,v,pc,Time = 18,Grav = 8000,PPS = 400):
  44.     cascada=Bladex.CreateEntity(Cascada, "Entity Particle System D2",p[0],p[1],p[2])
  45.     cascada.D=d[0],d[1],d[2]
  46.     cascada.ParticleType="AguaC2"
  47.     cascada.Friction=0.07
  48.     cascada.RandomVelocity=10.0
  49.     cascada.Velocity=v[0],v[1],v[2]
  50.     cascada.PPS=PPS
  51.     cascada.YGravity=Grav
  52.     cascada.Time2Live=Time
  53.  
  54.     Espuma2=Bladex.CreateEntity(Cascada+"Espuma2", "Entity Particle System D2",pc[0],pc[1],pc[2])
  55.     Espuma2.D=d[0],d[1],d[2]
  56.     Espuma2.ParticleType="Espuma2"
  57.     Espuma2.PPS=40
  58.     Espuma2.YGravity=0.0
  59.     Espuma2.Friction=0.07
  60.     Espuma2.Velocity=0.0, -1000.0, 0.0
  61.     Espuma2.RandomVelocity=30.0
  62.     Espuma2.RandomVelocity_V=30.0
  63.     Espuma2.Time2Live=10
  64.  
  65. def CreateEspuma2(Espuma2,pc,d,PPS = 40):
  66.     Espuma2=Bladex.CreateEntity(Espuma2, "Entity Particle System D2",pc[0],pc[1],pc[2])
  67.     Espuma2.D=d[0],d[1],d[2]
  68.     Espuma2.ParticleType="Espuma2"
  69.     Espuma2.PPS=PPS
  70.     Espuma2.YGravity=0.0
  71.     Espuma2.Friction=0.07
  72.     Espuma2.Velocity=0.0, -1000.0, 0.0
  73.     Espuma2.RandomVelocity=30.0
  74.     Espuma2.RandomVelocity_V=30.0
  75.     Espuma2.Time2Live=10
  76.  
  77.  
  78. def BorrarCascada1(cascada):
  79.     cascada = Bladex.GetEntity(cascada)
  80.     cascada.SubscribeToList("Pin")
  81.     
  82.     Espuma2 = Bladex.GetEntity(cascada+"Espuma2")
  83.     Espuma2.SubscribeToList("Pin")
  84.  
  85. #*************************************************************************************************
  86. #*************************************************************************************************
  87. #*************************************************************************************************
  88. #*******************************                                        **************************
  89. #*******************************   Definiciones para enemigos.py        **************************
  90. #*******************************                                        **************************
  91. #*************************************************************************************************
  92. #*************************************************************************************************
  93.  
  94. def ApareceCosita(sectorindex,entityname):
  95.     if entityname == "Player1":
  96.         darfuncs.UnhideBadGuy("1cos")
  97.         darfuncs.UnhideBadGuy("2cos")
  98.         darfuncs.UnhideBadGuy("4cos")
  99.         sencos=Bladex.GetSector(-136750,15000,69550)
  100.         sencos.OnEnter=""
  101.  
  102. def ApareceCosita2(sectorindex,entityname):
  103.     if entityname == "Player1":
  104.         darfuncs.UnhideBadGuy("1cos1")
  105.         darfuncs.UnhideBadGuy("2cos2")
  106.         darfuncs.UnhideBadGuy("3cos3")
  107.         sencos2=Bladex.GetSector(-125000,8000,50000)
  108.         sencos2.OnEnter=""
  109.  
  110. def ApareceKOMkngt(sectorindex,entityname):
  111.     if entityname == "Player1":
  112.         darfuncs.UnhideBadGuy("KOMkngt")
  113.         senkom=Bladex.GetSector(-74000,-5000,51500)
  114.         senkom.OnEnter=""
  115.  
  116. def Muere_KT_Patio(entity):
  117.     global N_KT_Patio
  118.     
  119.     Bladex.GetEntity(entity).Data.DefImDeadFunc(entity)
  120.     
  121.     if N_KT_Patio == 1:
  122.         AbrePuertaTres()
  123.     else:
  124.         N_KT_Patio = N_KT_Patio - 1
  125.  
  126. def Aparece4kngt(sectorindex,entityname):
  127.     if entityname == "Player1":
  128. #        darfuncs.UnhideBadGuy("4kngt")
  129. #        darfuncs.UnhideBadGuy("5kngt")
  130.         darfuncs.UnhideBadGuy("5bkngt")
  131.         sen4kngt=Bladex.GetSector(-79000,-8000,70000)
  132.         sen4kngt.OnEnter=""
  133.  
  134. def Desaparecen1(sectorindex,entityname):
  135.     if entityname == "Player1":
  136.         darfuncs.HideBadGuy("1cos")
  137.         darfuncs.HideBadGuy("2cos")
  138.         darfuncs.HideBadGuy("4cos")
  139.         darfuncs.HideBadGuy("1cos1")
  140.         darfuncs.HideBadGuy("2cos2")
  141.         darfuncs.HideBadGuy("3cos3")
  142.         darfuncs.HideBadGuy("KOMkngt")
  143.         darfuncs.HideBadGuy("3kngt")
  144.         darfuncs.HideBadGuy("2kngt")
  145.         sendes1=Bladex.GetSector(-122552.583148, -6321.28490453, 48176.4895)
  146.         sendes1.OnEnter=""
  147.  
  148. def Aparece227kngt(sectorindex,entityname):
  149.     if entityname == "Player1":
  150.         darfuncs.UnhideBadGuy("227kngt")
  151.         sen227kngt=Bladex.GetSector(-135500,-5500,-93000)
  152.         sen227kngt.OnEnter=""
  153.  
  154. def Aparece228kngt(sectorindex,entityname):
  155.     if entityname == "Player1":
  156.         darfuncs.UnhideBadGuy("228kngt")
  157.         #darfuncs.UnhideBadGuy("229kngt")
  158.         sen228kngt=Bladex.GetSector(-127727.850637, -12613.5904283, -110488.57)
  159.         sen228kngt.OnEnter=""
  160.  
  161. #*************************************************************************************************
  162. #*************************************************************************************************
  163. #*************************************************************************************************
  164. #*******************************                                        **************************
  165. #*******************************   Definiciones para elevador.py        **************************
  166. #*******************************                                        **************************
  167. #*************************************************************************************************
  168. #*************************************************************************************************
  169.  
  170. def SubeElevador():
  171.  
  172.     global enmarcha
  173.     if enmarcha:
  174.         return
  175.  
  176.     desplazamientos=(500.0, 5850.0, 500.0)
  177.     vectores=((0.0, -1.0, 0.0), (0.0, -1.0, 0.0), (0.0, -1.0, 0.0))
  178.     vel_iniciales=(0.0, 2000.0, 2000.0)
  179.     vel_finales=(2000.0, 2000.0, 0.0)
  180.     son_iniciales=(golpeelevador, "", golpeelevador)
  181.     son_durante=(loopelevador, loopelevador, loopelevador)
  182.     Objects.NDisplaceObject(plataformaelevadormovil, desplazamientos, vectores, vel_iniciales, vel_finales, son_iniciales, son_durante)
  183.     columnaelevador.CloseDoor()
  184.     enmarcha=1
  185.  
  186. def BajaElevador():
  187.  
  188.     desplazamientos=(500.0, 5850.0, 500.0)
  189.     vectores=((0.0, 1.0, 0.0), (0.0, 1.0, 0.0), (0.0, 1.0, 0.0))
  190.     vel_iniciales=(0.0, 2000.0, 2000.0)
  191.     vel_finales=(2000.0, 2000.0, 0.0)
  192.     son_iniciales=(golpeelevador, "", golpeelevador)
  193.     son_durante=(loopelevador, loopelevador, loopelevador)
  194.     Objects.NDisplaceObject(plataformaelevadormovil, desplazamientos, vectores, vel_iniciales, vel_finales, son_iniciales, son_durante)
  195.     columnaelevador.OpenDoor()
  196.  
  197. def ElevadorArriba():
  198.  
  199.     global enmarcha
  200.     enmarcha=0
  201.  
  202.  
  203. def EsperaYBajaElevador():
  204.  
  205.     Bladex.AddScheduledFunc(Bladex.GetTime()+3.0, BajaElevador, ())
  206.  
  207.  
  208. def SubeElevador2():
  209.  
  210.     desplazamientos=(500.0, 6250.0, 500.0)
  211.     vectores=((0.0, -1.0, 0.0), (0.0, -1.0, 0.0), (0.0, -1.0, 0.0))
  212.     vel_iniciales=(0.0, 2000.0, 2000.0)
  213.     vel_finales=(2000.0, 2000.0, 0.0)
  214.     son_iniciales=(golpeelevador, "", golpeelevador)
  215.     son_durante=(loopelevador, loopelevador, loopelevador)
  216.     Objects.NDisplaceObject(plataformaelevador2movil, desplazamientos, vectores, vel_iniciales, vel_finales, son_iniciales, son_durante)
  217.     columnaelevador2.CloseDoor()
  218.  
  219.  
  220. def BajaElevador2():
  221.  
  222.     global enmarcha
  223.     if enmarcha:
  224.         return
  225.     desplazamientos=(500.0, 6250.0, 500.0)
  226.     vectores=((0.0, 1.0, 0.0), (0.0, 1.0, 0.0), (0.0, 1.0, 0.0))
  227.     vel_iniciales=(0.0, 2000.0, 2000.0)
  228.     vel_finales=(2000.0, 2000.0, 0.0)
  229.     son_iniciales=(golpeelevador, "", golpeelevador)
  230.     son_durante=(loopelevador, loopelevador, loopelevador)
  231.     Objects.NDisplaceObject(plataformaelevador2movil, desplazamientos, vectores, vel_iniciales, vel_finales, son_iniciales, son_durante)
  232.     columnaelevador2.OpenDoor()
  233.     enmarcha=1
  234.  
  235.  
  236. def EsperaYSubeElevador2():
  237.  
  238.     Bladex.AddScheduledFunc(Bladex.GetTime()+3.0, SubeElevador2, ())
  239.  
  240.  
  241. def Elevador2Arriba():
  242.  
  243.     global enmarcha
  244.     enmarcha=0
  245.  
  246.  
  247. #*************************************************************************************************
  248. #*************************************************************************************************
  249. #*************************************************************************************************
  250. #*******************************                                        **************************
  251. #*******************************   Definiciones para DrunkWarder.py     **************************
  252. #*******************************                                        **************************
  253. #*************************************************************************************************
  254. #*************************************************************************************************
  255.  
  256.  
  257. def IniciaCarcelero(sector_index, entity_name):
  258.     sectoriniccarc.OnEnter=""
  259.     carcelero.Data.Murmura("Carcelero")
  260.  
  261. def Herido(entity_name):
  262.     carcelero.Data.Molestia("Carcelero")
  263.  
  264. def Matado(entity_name):
  265.     carcelero.Data.Muere("Carcelero")
  266.  
  267. ############################
  268. #     Apagar ronquidos     #
  269. ############################
  270.  
  271. def ApagaRonquidos(sector_index, entity_name):
  272.     sectorapagaronq.OnEnter=""
  273.     rastmaz1.SubscribeToList("Pin")
  274.     rastmaz2.SubscribeToList("Pin")
  275.     rastmaz3.SubscribeToList("Pin")
  276.     if carcelero.Data.Muerto==0:
  277.         carcelero.Data.ronquidos.Stop()
  278.     if not prisionerovivo1.Data.Muerto:
  279.         darfuncs.HideBadGuy(prisionerovivo1.Name)
  280.     if not prisionerovivo2.Data.Muerto:
  281.         darfuncs.HideBadGuy(prisionerovivo2.Name)
  282.  
  283.  
  284.  
  285.  
  286. #*************************************************************************************************
  287. #*************************************************************************************************
  288. #*************************************************************************************************
  289. #*******************************                                        **************************
  290. #*******************************   Definiciones para ChaosKnight.py     **************************
  291. #*******************************                                        **************************
  292. #*************************************************************************************************
  293. #*************************************************************************************************
  294.  
  295.  
  296. ###############
  297. #   Eventos   #
  298. ###############
  299.  
  300. def ChaosDamage(VictimName, AttackerName, WeaponName, DamageType, DamageZone, DamageNode, x, y, z, Shielded):
  301.     chaos = Bladex.GetEntity(VictimName)
  302.     Damage.CalculateDamage(VictimName, AttackerName, WeaponName, DamageType, DamageZone, DamageNode, x, y, z, Shielded)
  303.     if chaos.Life < 800:
  304.         chaos.ImDeadFunc(VictimName)
  305.         chaos.DamageFunc = ""
  306.  
  307.  
  308. ####################
  309. #     Acciones     #
  310. ####################
  311.  
  312. #####################
  313. #     Aparicion     #
  314. #####################
  315.  
  316. def ApareceChk():
  317.     Bladex.SetListenerPosition(2)
  318.     chaosk1.Data.Appear()
  319.  
  320. def ReiniciaCamaraChk(entity_name, camera_element, node):
  321.     cam=Bladex.GetEntity("Camera")
  322.     if (node==1) and (camera_element==1):
  323.         cam.TType=0
  324.         cam.CameraClearPath(1)
  325.     if (node==0) and (camera_element==0):
  326.         cam.SType=0
  327.         cam.CameraClearPath(0)
  328.         cam.SetPersonView("Player1")
  329.         cam.Cut()
  330.         Scorer.SetVisible(1)
  331.         cam.ChangeNodeFunc=""
  332.         ScriptSkip.SkipScriptEnd()
  333.         Bladex.SetListenerPosition(1)
  334.         chaosk1.Blind=0
  335.         chaosk1.Deaf=0
  336.  
  337. def DetieneCamaraChk(entity_name, camera_element, node):
  338.     global prevtpos
  339. #    print "nodo: "+`node`+"   elemento: "+`camera_element`
  340.     cam=Bladex.GetEntity("Camera")
  341.     if (node==1) and (camera_element==1):
  342.         cam.TType=0
  343.         cam.CameraClearPath(1)
  344.     if (node==9) and (camera_element==0):
  345.         # Path target
  346.         cam.AddCameraNode(1, 3.0, -114000.0, 0.0, -99500.0)
  347.         cam.AddCameraNode(1, 3.0, prevtpos[0], prevtpos[1], prevtpos[2])
  348.         cam.AddCameraNode(1, 3.0, -110000.0, 0.0, -96000.0)
  349.         cam.TType=1
  350.         cam.CameraStartPath(1)
  351.         cam.ChangeNodeFunc=ReiniciaCamaraChk
  352.  
  353. def MueveCamaraChk(sector_index, entity_name):
  354.     #Bladex.ExeMusicEvent(-1)
  355.     Bladex.KillMusic()
  356.     Bladex.ExeMusicEvent(Bladex.GetMusicEvent("chaosragnar"))
  357.     
  358.     global prevtpos
  359.     if entity_name=="Player1":
  360.         sectorcamarachk.OnEnter=""
  361.         ScriptSkip.SkipScriptStart("cacaos")
  362.         cam=Bladex.GetEntity("Camera")
  363.         opos=cam.Position
  364.         tpos=cam.TPos
  365.         prevtpos=cam.TPos
  366.         # Path objetivo
  367.         cam.AddCameraNode(0, 2.00, opos[0], opos[1], opos[2])
  368.         cam.SetCameraStartTangentNode(0, 0, 687.5, 0.0, -1125.0)
  369.         cam.SetCameraEndTangentNode(0, 0, -1000.0, 0.0, -4312.5)
  370.     
  371.         cam.AddCameraNode(0, 1.0, -100875.0, -1000.0, -98750.0)
  372.         cam.SetCameraStartTangentNode(0, 1, -1250.0, 0.0, -5562.5)
  373.         cam.SetCameraEndTangentNode(0, 1, -3062.5, 0.0, -875.0)
  374.     
  375.         cam.AddCameraNode(0, 1.5, -103250.0, 0.0, -102125.0)
  376.         cam.SetCameraStartTangentNode(0, 2, -3812.5, 0.0, -1500.0)
  377.         cam.SetCameraEndTangentNode(0, 2, -4187.5, 0.0, 2062.5)
  378.     
  379.         cam.AddCameraNode(0, 1.50, -107250.0, 1000.0, -101875.0)
  380.         cam.SetCameraStartTangentNode(0, 3, -3937.5, 0.0, 1687.5)
  381.         cam.SetCameraEndTangentNode(0, 3, -2625.0, 0.0, 3000.0)
  382.     
  383.         cam.AddCameraNode(0, 2.0, -110625.0, 1500.0, -97250.0)
  384.         cam.SetCameraStartTangentNode(0, 4, -2500.0, 0.0, 2750.0)
  385.         cam.SetCameraEndTangentNode(0, 4, -4000.0, 0.0, 0.0)
  386.     
  387.         cam.AddCameraNode(0, 2.0, -114125.0, 1500.0, -95750.0)
  388.         cam.SetCameraStartTangentNode(0, 5, -4000.0, 0.0, 0.0)
  389.         cam.SetCameraEndTangentNode(0, 5, -1187.5, 0.0, -2687.5)
  390.     
  391.         cam.AddCameraNode(0, 1.5, -117250.0, 750.0, -97875.0)
  392.         cam.SetCameraStartTangentNode(0, 6, -1312.5, 0.0, -2687.5)
  393.         cam.SetCameraEndTangentNode(0, 6, 1250.0, 0.0, -2687.5)
  394.     
  395.         cam.AddCameraNode(0, 1.5, -117125.0, -250.0, -100875.0)
  396.         cam.SetCameraStartTangentNode(0, 7, 1125.0, 0.0, -2812.5)
  397.         cam.SetCameraEndTangentNode(0, 7, 2875.0, 0.0, -625.0)
  398.     
  399.         cam.AddCameraNode(0, 1.5, -114125.0, -1250.0, -103125.0)
  400.         cam.SetCameraStartTangentNode(0, 8, 2500.0, 0.0, -625.0)
  401.         cam.SetCameraEndTangentNode(0, 8, 3500.0, 0.0, 0.0)
  402.     
  403.         cam.AddCameraNode(0, 1.5, -110500.0, -1750.0, -103250.0)
  404.         cam.SetCameraStartTangentNode(0, 9, 3625.0, 0.0, 0.0)
  405.         cam.SetCameraEndTangentNode(0, 9, 2687.5, 0.0, 2250.0)
  406.     
  407.         cam.AddCameraNode(0, 3.0, -104000.0, -1750.0, -101375.0)
  408.         cam.SetCameraStartTangentNode(0, 10, 4437.5, 0.0, 3250.0)
  409.         cam.SetCameraEndTangentNode(0, 10, 1375.0, 0.0, 875.0)
  410.     
  411.         # Path target
  412.         cam.AddCameraNode(1, 3.0, tpos[0], tpos[1], tpos[2])
  413.         cam.AddCameraNode(1, 3.0, -114000.0, 0.0, -99500.0)
  414.         cam.AddCameraNode(1, 3.0, -110000.0, 0.0, -96000.0)
  415.  
  416.         cam.SType=1
  417.         cam.TType=1
  418.         cam.CameraStartPath(0)
  419.         cam.CameraStartPath(1)
  420.         cam.ChangeNodeFunc=DetieneCamaraChk
  421.         Bladex.AddScheduledFunc(Bladex.GetTime()+1.0, ApareceChk, ())
  422.         Scorer.SetVisible(0)
  423.  
  424.  
  425. def ReiniciaCamaraChaosK1():
  426.     global prevPViewType
  427.     cam=Bladex.GetEntity("Camera")
  428.     cam.SetPersonView("Player1")
  429.     cam.PViewType=prevPViewType
  430.     cam.Cut()
  431.     Bladex.ActivateInput()
  432.     #print("Hello my babe!")
  433.  
  434. def GiraCamara(obj_name, time):
  435.     global paso_n
  436.     global chaospos
  437.     global init_tpos
  438.     cam=Bladex.GetEntity("Camera")
  439.     vtpos=init_tpos[0]-chaospos[0], 0.0, init_tpos[2]-chaospos[2]
  440.     vtposnorm=B3DLib.Normalize(vtpos)
  441.     paso_n=paso_n+1
  442.     newvtposnorm=vtposnorm[0]*math.cos(paso_n*ANGLE_VARIATION)-vtposnorm[2]*math.sin(paso_n*ANGLE_VARIATION), 0.0, vtposnorm[0]*math.sin(paso_n*ANGLE_VARIATION)+vtposnorm[2]*math.cos(paso_n*ANGLE_VARIATION)
  443.     newvtpos=newvtposnorm[0]*2000, 0.0, newvtposnorm[2]*2000
  444.     cam.TPos=chaospos[0]+newvtpos[0], -250.0, chaospos[2]+newvtpos[2]
  445.     if paso_n==TOTAL_STEPS:
  446.         cam.RemoveFromList("Timer60")
  447.         cam.TimerFunc=""
  448.         ReiniciaCamaraChaosK1()
  449.         AbrePuertaCaos()
  450.         Bladex.AddScheduledFunc(Bladex.GetTime()+10.0, MusicTool.LaunchMusicEvent, ("suspenselento",))
  451.  
  452. def MuereChaosK1(entity_name):
  453.     global paso_n
  454.     global chaospos
  455.     global init_tpos
  456.     global prevPViewType
  457.     Bladex.DeactivateInput()
  458.     chaosk1.Data.Disappear(entity_name)
  459.     cam=Bladex.GetEntity("Camera")
  460.     char=Bladex.GetEntity("Player1")
  461.     charpos=char.Position
  462.     chaospos=chaosk1.Position
  463.     vtpos=chaospos[0]-charpos[0], 0.0, chaospos[2]-charpos[2]
  464.     vtposnorm=B3DLib.Normalize(vtpos)
  465.     newvtposnorm=vtposnorm[0]*math.cos(3.14159/2.0)-vtposnorm[2]*math.sin(3.14159/2.0), 0.0, vtposnorm[0]*math.sin(3.14159/2.0)+vtposnorm[2]*math.cos(3.14159/2.0)
  466.     newvtpos=newvtposnorm[0]*2000.0, 0.0, newvtposnorm[2]*2000.0
  467.     prevPViewType=cam.PViewType
  468.     cam.PViewType=0
  469.     cam.ESource="ChaosK1"
  470.     cam.TPos=chaospos[0]+newvtpos[0], -250.0, chaospos[2]+newvtpos[2]
  471.     cam.SType=2
  472.     cam.TType=0
  473.     init_tpos=cam.TPos
  474.     paso_n=0
  475.     cam.TimerFunc=GiraCamara
  476.     cam.SubscribeToList("Timer60")
  477.     darfuncs.UnhideBadGuy("22kngt")
  478.     darfuncs.UnhideBadGuy("23kngt")
  479.     #darfuncs.UnhideBadGuy("226kngt")
  480.     Bladex.ExeMusicEvent(Bladex.GetMusicEvent("emptyloquesea"), 1)
  481.  
  482.  
  483. #*************************************************************************************************
  484. #*************************************************************************************************
  485. #*************************************************************************************************
  486. #*******************************                                        **************************
  487. #*******************************   Definiciones para Cascadat.py        **************************
  488. #*******************************                                        **************************
  489. #*************************************************************************************************
  490. #*************************************************************************************************
  491.  
  492. def CreateCascada2(Cascada,p,d,v,pc,Time = 16,Grav = 13000,PPS = 800):
  493.     cascada=Bladex.CreateEntity(Cascada, "Entity Particle System D2",p[0],p[1],p[2])
  494.     cascada.D=d[0],d[1],d[2]
  495.     cascada.ParticleType="AguaC"
  496.     cascada.Friction=0.07
  497.     cascada.RandomVelocity=8.0
  498.     cascada.Velocity=v[0],v[1],v[2]
  499.     cascada.PPS=PPS
  500.     cascada.YGravity=Grav
  501.     cascada.Time2Live=Time
  502.  
  503.     espuma=Bladex.CreateEntity(Cascada+"Espuma", "Entity Particle System D2",pc[0],pc[1],pc[2])
  504.     espuma.D=d[0],d[1],d[2]
  505.     espuma.ParticleType="Espuma"
  506.     espuma.PPS=150
  507.     espuma.YGravity=0.0
  508.     espuma.Friction=0.07
  509.     espuma.Velocity=0.0, -1000.0, 0.0
  510.     espuma.RandomVelocity=30.0
  511.     espuma.RandomVelocity_V=30.0
  512.     espuma.Time2Live=10
  513.  
  514.  
  515. def BorrarCascada2(cascada):
  516.     cascada = Bladex.GetEntity(cascada)
  517.     cascada.SubscribeToList("Pin")
  518.     
  519.     espuma = Bladex.GetEntity(cascada+"Espuma")
  520.     espuma.SubscribeToList("Pin")
  521.  
  522.  
  523. #*************************************************************************************************
  524. #*************************************************************************************************
  525. #*************************************************************************************************
  526. #*******************************                                        **************************
  527. #*******************************   Definiciones para BurningKnights.py **************************
  528. #*******************************                                        **************************
  529. #*************************************************************************************************
  530. #*************************************************************************************************
  531.  
  532. def ReduceSmoke3():
  533.     global humo
  534.     humo.RandomVelocity=30.0
  535.     humo.Time2Live=30
  536.     humo.DeathTime=Bladex.GetTime()+3.0
  537.  
  538. def ReduceSmoke2():
  539.     global humo
  540.     humo.Position=-89500.0, -3200.0, 21750.0
  541.     humo.D=0.0, 0.0, -4250.0
  542.     humo.RandomVelocity=40.0
  543.     humo.Time2Live=40
  544.     Bladex.AddScheduledFunc(Bladex.GetTime()+11.0, ReduceSmoke3, ())
  545.  
  546. def ReduceSmoke1():
  547.     global humo
  548.     humo.Time2Live=60
  549.     Bladex.AddScheduledFunc(Bladex.GetTime()+5.0, ReduceSmoke2, ())
  550.  
  551. def LaunchSmoke():
  552.     global humo
  553.     humo=Bladex.CreateEntity("Humo", "Entity Particle System D2", -89500.0, -4000.0, 20750.0)
  554.     humo.D=0.0, 0.0, -3250.0
  555.     humo.ParticleType="LightDarkSmoke"
  556.     humo.PPS=30
  557.     humo.Time2Live=96
  558.     humo.Velocity=0.0, 0.0, 0.0
  559.     humo.RandomVelocity=60.0
  560.     humo.Friction=0.07
  561.     humo.YGravity=-2000
  562.     Bladex.AddScheduledFunc(Bladex.GetTime()+5.0, ReduceSmoke1, ())
  563.  
  564. def SetFireToBoxes (ObjectName,use_from):
  565.     # Call the standard SetFireTo UseFunc
  566.     Actions.StdSetFireToUseFunc(ObjectName,use_from)
  567.     char = Bladex.GetEntity("Player1")
  568.     AuxFuncs.GetSpot(Bladex.GetEntity(char.InvRight)).CastShadows = 0
  569.     Torchs.ExtingueAntorcha(char.InvRight)
  570.  
  571.     t = Bladex.GetTime()
  572.     t= t + 1
  573.  
  574.     for n in range(5):
  575.         o=Bladex.GetEntity("BKBox"+`n+1`)
  576.         o.Data.BurnTime=10-n #8-n/2.0
  577.  
  578.     Bladex.AddScheduledFunc(t, LaunchSmoke, ())
  579.  
  580.     # Set up some events
  581.  
  582.     toBurn1 = "BKBox1"
  583.     if ObjectName != toBurn1:
  584.         o=Bladex.GetEntity(toBurn1)
  585.         Reference.debugprint (toBurn1 + ": will be burnt")
  586.         o.Data.UsedBy = ObjectName
  587.         o.UseFunc=0
  588.         Bladex.AddScheduledFunc(t, Actions.SetAlight,(toBurn1,),"BKBox1")
  589.     
  590.     toBurn2 = "BKBox2"
  591.     if ObjectName != toBurn2:
  592.         o=Bladex.GetEntity(toBurn2)
  593.         Reference.debugprint (toBurn2 + ": will be burnt")
  594.         o.Data.UsedBy = ObjectName
  595.         o.UseFunc=0
  596.         Bladex.AddScheduledFunc(t, Actions.SetAlight,(toBurn2,),"BKBox2")
  597.  
  598.     toBurn3 = "BKBox3"
  599.     if ObjectName != toBurn3:
  600.         o=Bladex.GetEntity(toBurn3)
  601.         Reference.debugprint (toBurn3 + ": will be burnt")
  602.         o.Data.UsedBy = ObjectName
  603.         o.UseFunc=0
  604.         Bladex.AddScheduledFunc(t, Actions.SetAlight,(toBurn3,),"BKBox3")
  605.         
  606.     toBurn4 = "BKBox4"
  607.     if ObjectName != toBurn4:
  608.         o=Bladex.GetEntity(toBurn4)
  609.         Reference.debugprint (toBurn4 + ": will be burnt")
  610.         o.Data.UsedBy = ObjectName
  611.         o.UseFunc=0
  612.         Bladex.AddScheduledFunc(t, Actions.SetAlight,(toBurn4,),"BKBox4")
  613.  
  614.     toBurn5 = "BKBox5"
  615.     if ObjectName != toBurn5:
  616.         o=Bladex.GetEntity(toBurn5)
  617.         Reference.debugprint (toBurn5 + ": will be burnt")
  618.         o.Data.UsedBy = ObjectName
  619.         o.UseFunc=0
  620.         Bladex.AddScheduledFunc(t, Actions.SetAlight,(toBurn5,),"BKBox5")
  621.  
  622.     toBurn7 = "Robin"
  623.     if ObjectName != toBurn7:
  624.         o=Bladex.GetEntity(toBurn7)
  625.         Reference.debugprint (toBurn7 + ": will be burnt")                
  626.         o.Data.UsedBy = ObjectName
  627.         Bladex.AddScheduledFunc(t, o.Data.SetOnFire,(toBurn7,),"Robin")
  628.         Bladex.AddScheduledFunc(t+BoxBurnTime+3,    o.Data.StartRunning,(toBurn7,),"Robin")
  629.         Bladex.AddScheduledFunc(Bladex.GetTime()+10.0,GritaElQuemado,())
  630.         
  631.     
  632.     # Should sort the other boxes according to distance from this one
  633.     # add scheduled funcs to set them on fire from nearest to furthest
  634.     # add scheduled funcs to destroy them from topmost to bottommost
  635.  
  636. def GritaElQuemado():
  637.     BKnightScream.Play(-89366.8447634, -3601.40781545, 19428.7059865,0)
  638.     #print "Gritio de condena y muerte"
  639.  
  640. def Launch():
  641.     per=Bladex.GetEntity("Robin")
  642.     pos=per.Position        # Should be the boxes position
  643.     per.CatchOnFire (pos[0],pos[1], pos[2])
  644.     Bladex.AddScheduledFunc(Bladex.GetTime()+5.0,per.Data.StartRunning,("Robin",))    
  645.     
  646.  
  647.  
  648. #*************************************************************************************************
  649. #*************************************************************************************************
  650. #*************************************************************************************************
  651. #*******************************                                        **************************
  652. #*******************************   Definiciones para antorchas.py       **************************
  653. #*******************************                                        **************************
  654. #*************************************************************************************************
  655. #*************************************************************************************************
  656.  
  657. def Apagala(sectorindex,entityname): 
  658.     a = Bladex.GetEntity(entityname)
  659.     #print entityname
  660.     if a.Kind == "Antorcha":
  661.         Torchs.ExtingueAntorcha(entityname)
  662.         #print"ExtingeAntorcha"
  663.  
  664.  
  665. def Apagala2(sectorindex,entityname): 
  666.     a = Bladex.GetEntity(entityname)
  667.     #print entityname
  668.     if a.Kind == "Antorcha":
  669.         Torchs.ExtingueAntorcha(entityname)
  670.         #print"ExtingeAntorcha"
  671.  
  672. def Apagala3(sectorindex,entityname): 
  673.     a = Bladex.GetEntity(entityname)
  674.     #print entityname
  675.     if a.Kind == "Antorcha":
  676.         Torchs.ExtingueAntorcha(entityname)
  677.         #print"ExtingeAntorcha"
  678.  
  679. #*************************************************************************************************
  680. #*************************************************************************************************
  681. #*************************************************************************************************
  682. #*******************************                                        **************************
  683. #*******************************   Definiciones para escape.py          **************************
  684. #*******************************                                        **************************
  685. #*************************************************************************************************
  686. #*************************************************************************************************
  687.  
  688. def PolvoRoturaMuro():
  689.     polvorotura=Bladex.CreateEntity("PolvoRotura", "Entity Particle System D2", -110250, 8500, 86000)
  690.     polvorotura.ParticleType="WallDust"
  691.     polvorotura.D=2000, 0, 0
  692.     polvorotura.YGravity=0.0
  693.     polvorotura.Friction=0.2
  694.     polvorotura.PPS=480
  695.     polvorotura.Velocity=0.0, -1000.0, -2000.0
  696.     polvorotura.RandomVelocity=80.0
  697.     polvorotura.Time2Live=60
  698.     polvorotura.DeathTime=Bladex.GetTime()+3.0/60.0
  699.  
  700.  
  701.  
  702. ##################
  703. #     Accion     #
  704. ##################
  705.  
  706.  
  707. def ReiniciaCamara():
  708.     cam=Bladex.GetEntity("Camera")
  709.     cam.SetPersonView("Player1")
  710. #    print "camara reseteada..."
  711.  
  712. def DetieneCamara(entity_name, camera_element, node):
  713. #    print "nodo: "+`node`
  714.     if node==1:
  715.         cam=Bladex.GetEntity("Camera")
  716. #        print "me detengo..."
  717.         cam.SType=0
  718.         cam.CameraClearPath(0)
  719.         Bladex.ActivateInput()
  720.  
  721. def MueveCamara():
  722.     cam=Bladex.GetEntity("Camera")
  723.     opos=cam.Position
  724.     tpos=cam.TPos
  725. #    print "comienzo trayectoria..."
  726.     cam.AddCameraNode(0, 6.0, -109415, 3150, 82722)
  727.     cam.SetCameraStartTangentNode(0, 0, -6000.0, 0.0, 0.0)
  728.     cam.SetCameraEndTangentNode(0, 0, 0.0, 0.0, 6000.0)
  729.     cam.AddCameraNode(0, 6.0, -113000.0, 6000.0, 84000.0)
  730.     cam.SetCameraStartTangentNode(0, 1, 0.0, 0.0, 6000.0)
  731.     cam.SetCameraEndTangentNode(0, 1, 6000.0, 0.0, 0.0)
  732.     cam.AddCameraNode(0, 6.0, -109500.0, 6000.0, 87500.0)
  733.     cam.SetCameraStartTangentNode(0, 2, 6000.0, 0.0, 0.0)
  734.     cam.SetCameraEndTangentNode(0, 2, 0.0, 0.0, -6000.0)
  735.     cam.SType=1
  736.     cam.TType=0
  737.     cam.CameraStartPath(0)
  738.     cam.ChangeNodeFunc=DetieneCamara
  739.     AnimaPersonaje()
  740.  
  741. def RoturaMuroCelda():
  742. #    derrumbemurocelda.Play(-109500.0, 7500.0, 86000.0)
  743.     muroceldasup.DoBreak((0.0, 0.0, 1.6), (-109500.0, 7250.0, 85500.0), (0.0, 0.0, 0.0))
  744.     muroceldainf.DoBreak((0.0, 0.0, 1.4), (-109500.0, 7750.0, 85500.0), (0.0, 0.0, 0.0))
  745.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.5, PolvoRoturaMuro, ())
  746.     Bladex.AddScheduledFunc(Bladex.GetTime()+2.0, ReiniciaCamara, ())
  747.  
  748. def SonidoRotura():
  749.     derrumbemurocelda.Play(-109500.0, 7500.0, 86000.0)
  750.  
  751. def SonidoRocasAgua():
  752.     derrumbemuroagua.Play(-109500.0, 13000.0, 88000.0)
  753.  
  754. def AnimaPersonaje():
  755.     pj=Bladex.GetEntity("Player1")
  756.     pj.SetTmpAnmFlags(1, 1, 1, 0, 1, 1,0)
  757.     punteromuro.RemoveFromWorld()
  758.     pj.LaunchAnmType("push_wall")
  759.     pj.Position=-109500.0, 7750.0, 84300.0
  760.     pj.Angle = 0
  761.     pj.SetOnFloor()
  762.     Bladex.AddScheduledFunc(Bladex.GetTime()+5.0, SonidoRotura, ())
  763.     Bladex.AddScheduledFunc(Bladex.GetTime()+6.5, SonidoRocasAgua, ())
  764.     Bladex.AddScheduledFunc(Bladex.GetTime()+5.3, RoturaMuroCelda, ())
  765.  
  766. def DerribaMuro(obj_name, use_from):
  767.     pj=Bladex.GetEntity("Player1")
  768.     Bladex.DeactivateInput()
  769.     pj.Position=-109500.0, 7750.0, 84300.0
  770.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.0, MueveCamara, ())
  771.  
  772. #*************************************************************************************************
  773. #*************************************************************************************************
  774. #*************************************************************************************************
  775. #*******************************                                        **************************
  776. #*******************************   Definiciones para InicioScene.py     **************************
  777. #*******************************                                        **************************
  778. #*************************************************************************************************
  779. #*************************************************************************************************
  780.  
  781.  
  782. def Despierta2kngt(sec_idx, ent_name):
  783.     if ent_name=="Player1":
  784.         sec2kngt.OnEnter=""
  785.         k=Bladex.GetEntity("2kngt")
  786.         k.Blind=0
  787.         k.Deaf=0
  788.  
  789.  
  790. def StopCameraInicio(Camera,frame):
  791.     cam = Bladex.GetEntity("Camera")
  792.     cam.SetPersonView("Player1")
  793.     ScriptSkip.SkipScriptEnd()
  794.     Bladex.SetListenerPosition(1)
  795.     k = Bladex.GetEntity("2kngt")
  796.     inv = k.GetInventory()
  797.     inv.LinkRightHand("None")
  798.     ant = Bladex.GetEntity("Kngtant2")
  799.     ant.Position = -100491.9163488, 1927.6169906, 71910.102509
  800.     ant.Orientation = 0.512640833855, -0.408463507891, -0.678020298481, 0.332633882761
  801.     Actions.TakeObject("2kngt","RagnarEspadaromana2")
  802.     Actions.TakeObject("2kngt","RagnarEsc2kgt")
  803.     #Bladex.CDStop()
  804.     Scorer.SetVisible(1)
  805.  
  806.  
  807. def LanzaAnimInicio():
  808.     char= Bladex.GetEntity("Player1")
  809.     char.Angle = 3.1415/2
  810.     char.Position = -111712.383,8742.335,79385.813
  811.     char.SetTmpAnmFlags(1,1,1,0,5,1,0)
  812.     char.LaunchAnimation("Kgt_inicio_ragnar")
  813.  
  814.  
  815. def RagnarInicio():
  816.     Bladex.ExeMusicEvent(Bladex.GetMusicEvent("inicioragnar"))
  817.  
  818.     if Reference.DEMO_MODE==0:
  819.         GotoMapVars.MapText(2,"D_M2_T1")
  820.     
  821.     initial_time = Bladex.GetTime()    
  822.  
  823.     Scorer.SetVisible(0)
  824.     AuxFuncs.FadeFrom(2.0)
  825.     Bladex.AddScheduledFunc(initial_time+2.0, GameText.WriteText, ("M2T2",))
  826.     cam = Bladex.GetEntity("Camera")    
  827.     cam.SetMaxCamera("RagnarCamera1.cam",0,800)
  828.     cam.AddCameraEvent(-1,StopCameraInicio)    
  829.     ScriptSkip.SkipScriptStart("1erscript")
  830.     Bladex.SetListenerPosition(2)
  831.     
  832.     char= Bladex.GetEntity("Player1")
  833.     char.Life = 60
  834.     char.Angle = 3.1415/2
  835.     char.Position = -111712.383,8742.335,79385.813
  836.     #char.SetTmpAnmFlags(1,1,1,0,5,1,0)
  837.     #char.LaunchAnimation("Kgt_inicio_ragnar")
  838.     Bladex.AddScheduledFunc(initial_time+28.0+5.0, LanzaAnimInicio, ())
  839.     carcelero.Data.Duerme(carcelero.Name)
  840.  
  841.  
  842. def Apagala4(sectorindex,entityname): 
  843.     a = Bladex.GetEntity(entityname)
  844.     #print entityname
  845.     if a.Kind == "Antorcha":
  846.         Torchs.ExtingueAntorcha(entityname)
  847.         #print"ExtingeAntorcha"
  848.  
  849.  
  850. #*************************************************************************************************
  851. #*************************************************************************************************
  852. #*************************************************************************************************
  853. #*******************************                                        **************************
  854. #*******************************   Definiciones para positions.py       **************************
  855. #*******************************                                        **************************
  856. #*************************************************************************************************
  857. #*************************************************************************************************
  858.  
  859. def IrPosicion1():
  860.     Doors.Restore()
  861.     char=Bladex.GetEntity("Player1")
  862.     char.Position=-103000, -5000, 21000        # Patio Burning Knight
  863.     char.Angle=4.8
  864.  
  865. def IrPosicion2():
  866.     Doors.Restore()
  867.     char=Bladex.GetEntity("Player1")
  868.     #char.Position=-88000, -9000, 500        # Puente levadizo
  869.     #char.Position=    -91479.7264466, -8748.5, -8452.27476857
  870.     char.Position=-80340, -7696, 1430
  871.     char.Angle=1.9
  872.  
  873. def IrPosicion3():
  874.     Doors.Restore()
  875.     char=Bladex.GetEntity("Player1")
  876.     char.Position=-100000, 0, -84000        # Antes del Caballero del Caos
  877.     char.Angle=2.95
  878.  
  879. def IrPosicion4():
  880.     Doors.Restore()
  881.     char=Bladex.GetEntity("Player1")
  882.     char.Position=-136593, -12748.5, -88000  # Antes de Ragnar mandando enemigos
  883.     char.Angle=1.5
  884.  
  885. def IrPosicion5():
  886.     Doors.Restore()
  887.     char=Bladex.GetEntity("Player1")
  888.     char.Position=-101000, 6000, -98000        # En los pendulos
  889.     char.Angle=1.6
  890.  
  891. def IrPosicion6():
  892.     Doors.Restore()
  893.     char=Bladex.GetEntity("Player1")
  894.     char.Position=-142263, -29765, -89773        # Antes de Ragnar ·ltimo
  895.     char.Angle=3.3
  896.  
  897. def IrPosicion7():
  898.     Doors.Restore()
  899.     char=Bladex.GetEntity("Player1")
  900.     char.Position=-100457, -6246, 54321        # Patio con 3 enemigos
  901.     char.Angle=1.9
  902.  
  903. def IrPosicion8():
  904.     Doors.Restore()
  905.     char=Bladex.GetEntity("Player1")
  906.     char.Position=-102575.028299, 18237.0, 69621.1240909    # catacumbas
  907.     char.Angle=1.5
  908.  
  909. def IrPosicion9():
  910.     Doors.Restore()
  911.     char=Bladex.GetEntity("Player1")
  912.     char.Position=-82795, 1751.5, -35599.0    # Test Action Areas
  913.     char.Angle=1.5
  914.  
  915.  
  916. #*************************************************************************************************
  917. #*************************************************************************************************
  918. #*************************************************************************************************
  919. #*******************************                                        **************************
  920. #*******************************   Definiciones para Pinchos.py         **************************
  921. #*******************************                                        **************************
  922. #*************************************************************************************************
  923. #*************************************************************************************************
  924.  
  925. def DeactivatePinchoOnHit (EntityName, VictimName, ImpX, ImpY, ImpZ):    
  926.     pass
  927.  
  928. def ActivatePinchos(Name,RangeMin,RangeMax):
  929.     pass
  930.  
  931. def DeactivatePinchos(Name,RangeMin,RangeMax):
  932.     pass
  933.  
  934.  
  935. #*************************************************************************************************
  936. #*************************************************************************************************
  937. #*************************************************************************************************
  938. #*******************************                                        **************************
  939. #*******************************   Definiciones para Pendulos.py        **************************
  940. #*******************************                                        **************************
  941. #*************************************************************************************************
  942. #*************************************************************************************************
  943.     
  944. def MueveLlamaradaGolpe(entity,time):
  945.     llam = Bladex.GetEntity(entity)    
  946.     llam.Position = char.Position
  947.  
  948.  
  949. def RotarPendulo(Entity,Timer):
  950.     Pen = Bladex.GetEntity(Entity)
  951.     llam = Bladex.GetEntity(Entity+"llamarada")
  952.     P = Pen.Data.DatosPendulo
  953.     Aceleracion = P.fAc * math.sin(P.Angulo)
  954.     P.Vel = P.Vel + Aceleracion
  955.     P.Angulo = P.Angulo + P.Vel
  956.     Pen.RotateRel(P.Piv[0],P.Piv[1],P.Piv[2],P.Axi[0],P.Axi[1],P.Axi[2],P.Vel * P.Dir)
  957.     pos = llam.Position
  958.     P.sound1.Position = pos
  959.     P.sound2.Position = pos
  960.  
  961.  
  962. def CreatePendulo(Name):
  963.     Pendulo = Bladex.GetEntity(Name)
  964.     Pen = def_class.PENDULO()
  965.     Pen.Pendulo = Pendulo
  966.     Pendulo.TimerFunc = RotarPendulo
  967.     Pendulo.Data.DatosPendulo = Pen
  968.     luzpendulo=AuxFuncs.GetSpot(Pendulo)
  969.     luzpendulo.Precission=0.5
  970.     luzpendulo.CastShadows=0
  971.     Pen.sound1=Sounds.CreateEntitySound('..\\..\\Sounds\\Fire-curtains.wav', 'SonidoPenduloNazo')
  972.     Pen.sound1.Volume=0.5
  973.     Pen.sound1.MinDistance=5000
  974.     Pen.sound1.MaxDistance=10000
  975.     Pen.sound2=Sounds.CreateEntitySound('..\\..\\Sounds\\fireball-swing.wav', 'SonidoPendulo')
  976.     Pen.sound2.Volume=0.5
  977.     Pen.sound2.MinDistance=5000
  978.     Pen.sound2.MaxDistance=10000
  979.     Pen.sound3=Sounds.CreateEntitySound('..\\..\\Sounds\\Flame-hole.wav', 'SonidoGolpe')
  980.     Pen.sound3.Volume=0.5
  981.     Pen.sound3.MinDistance=10000
  982.     Pen.sound3.MaxDistance=15000
  983.  
  984.     llamarada=Bladex.CreateEntity(Name+"llamarada", "Entity Particle System D1", 0,0,-4400)
  985.     llamarada.ParticleType="Flame"
  986.     llamarada.YGravity=-2000.0
  987.     llamarada.Friction=0.01
  988.     llamarada.PPS=100
  989.     llamarada.Velocity=0.0, 0.0, 0.0
  990.     llamarada.RandomVelocity=15.0
  991.     llamarada.Time2Live=20
  992.     Pendulo.Link(llamarada)
  993.  
  994.     return Pen
  995.  
  996. def PlayerGolpeado(VictimName, AttackerName, WeaponName, DamageType, DamageZone, DamageNode, x, y, z, Shielded):    
  997.     if (WeaponName == "Pendulo1" or WeaponName == "Pendulo2"):        
  998.         char = Bladex.GetEntity("Player1")
  999.         Pendulo = Bladex.GetEntity(WeaponName)
  1000.  
  1001.         P = Pendulo.Data.DatosPendulo
  1002.         D = P.Vel * P.Dir    
  1003.         Angle = char.Angle
  1004.         pos = char.Position
  1005.     
  1006.         P.sound3.Position = x,y,z
  1007.         P.sound3.PlaySound(0)
  1008.  
  1009.         llamarada=Bladex.CreateEntity("llamaradagol", "Entity Particle System D1", pos[0],12300,pos[2])
  1010.         llamarada.ParticleType="Explode"
  1011.         llamarada.YGravity=-2000.0
  1012.         llamarada.Friction=0.08
  1013.         llamarada.PPS=100
  1014.         llamarada.Velocity=0.0, 0.0, 0.0
  1015.         llamarada.RandomVelocity=100.0
  1016.         llamarada.Time2Live=20
  1017.         llamarada.DeathTime=Bladex.GetTime()+0.5
  1018.         llamarada.TimerFunc = MueveLlamaradaGolpe
  1019.         llamarada.SubscribeToList("Timer30")
  1020.         Bladex.AddScheduledFunc(Bladex.GetTime()+0.4, llamarada.RemoveFromList, ("Timer30",))
  1021.  
  1022.         char.SetTmpAnmFlags(1,1,1,0,5,1)        
  1023.  
  1024.         cam = Bladex.GetEntity("Camera")
  1025.         cam.SetTravellingView(0,2)
  1026.         cam.ETarget = "Player1"    
  1027.  
  1028.         if D > 0:
  1029.             if Angle < 3.14:                            
  1030.                 char.LaunchAnmType("dth_penr")
  1031.                 char.Angle = 1.55
  1032.             else:
  1033.                 char.LaunchAnmType("dth_penl")
  1034.                 char.Angle = 4.70
  1035.         else:
  1036.             if Angle < 3.14:
  1037.                 char.LaunchAnmType("dth_penl")
  1038.                 char.Angle = 1.55
  1039.             else:
  1040.                 char.LaunchAnmType("dth_penr")
  1041.                 char.Angle = 4.70
  1042.         
  1043.         char.Life = 0        
  1044.  
  1045. def Activar_Pendulos(sector,Entity):
  1046.     global Trampa_Pendulos    
  1047.     if Entity == "Player1" and Trampa_Pendulos == 0:
  1048.         Trampa_Pendulos = 1
  1049.  
  1050.         
  1051. def Desactivar_Pendulos(sector,Entity):
  1052.     global Trampa_Pendulos
  1053.     global DesactivarPendulos
  1054.     if Entity == "Player1" and DesactivarPendulos == 1:        
  1055.         char = Bladex.GetEntity("Player1")        
  1056.         char.DamageFunc = ExHitFunc
  1057.         DesactivarPendulos = 0
  1058.         Trampa_Pendulos = 0
  1059.         P1.Stop()
  1060.         P2.Stop()
  1061.  
  1062. def ActivarDesactivadoPendulos(sector,Entity):
  1063.     global DesactivarPendulos
  1064.     global ExHitFunc
  1065.     if Entity == "Player1":
  1066.         if DesactivarPendulos == 0:
  1067.             char = Bladex.GetEntity("Player1")
  1068.             ExHitFunc = char.DamageFunc
  1069.             char.DamageFunc = PlayerGolpeado
  1070.             DesactivarPendulos = 1
  1071.             P1.Play()
  1072.             P2.Play()
  1073.  
  1074.  
  1075.  
  1076.  
  1077. #*************************************************************************************************
  1078. #*************************************************************************************************
  1079. #*************************************************************************************************
  1080. #*******************************                                        **************************
  1081. #*******************************   Definiciones para Levadizo.py        **************************
  1082. #*******************************                                        **************************
  1083. #*************************************************************************************************
  1084. #*************************************************************************************************
  1085.  
  1086. def ReiniciaCamaraPuente():
  1087.     cam=Bladex.GetEntity("Camera")
  1088.     cam.Cut()
  1089.     cam.SetPersonView("Player1")
  1090.     Bladex.SetListenerPosition(1)
  1091.     Bladex.ActivateInput()
  1092.  
  1093. def DetieneCamaraPuente(entity_name, camera_element, node):
  1094.     if node==1:
  1095.         cam=Bladex.GetEntity("Camera")
  1096.         if camera_element==0:
  1097.             cam.SType=0
  1098.             cam.CameraClearPath(0)
  1099.             cam.TType=0
  1100.             cam.CameraClearPath(1)
  1101.  
  1102. def MueveCamaraPuente():
  1103.     Bladex.DeactivateInput()
  1104.     Bladex.SetListenerPosition(2)
  1105.     cam=Bladex.GetEntity("Camera")
  1106.     # Path objetivo
  1107.     cam.AddCameraNode(0, 6.0, -114500.0, -10000.0, -68000.0)
  1108.     cam.SetCameraStartTangentNode(0, 0, -6071.0, 0.0, 2821.3)
  1109.     cam.SetCameraEndTangentNode(0, 0, 4159.7, 0.0, 4320.8)
  1110.     cam.AddCameraNode(0, 6.0, -116500.0, 0.0, -59500.0)
  1111.     cam.SetCameraStartTangentNode(0, 1, 3945.5, 0.0, 4213.7)
  1112.     cam.SetCameraEndTangentNode(0, 1, 2500.0, 0.0, -1250.0)
  1113.     cam.AddCameraNode(0, 6.0, -106000.0, 0.0, -58000.0)
  1114.     cam.SetCameraStartTangentNode(0, 2, 2500.0, 0.0, -1250.0)
  1115.     cam.SetCameraEndTangentNode(0, 2, -1375.0, 0.0, -2500.0)
  1116.     # Path target
  1117.     cam.AddCameraNode(1, 6.0, -100500.0, -1000.0, -60000.0)
  1118.     cam.SetCameraStartTangentNode(1, 0, -6071.0, 0.0, 2821.3)
  1119.     cam.SetCameraEndTangentNode(1, 0, 4159.7, 0.0, 4320.8)
  1120.     cam.AddCameraNode(1, 6.0, -104500.0, -2000.0, -65000.0)
  1121.     cam.SetCameraStartTangentNode(1, 1, 3945.5, 0.0, 4213.7)
  1122.     cam.SetCameraEndTangentNode(1, 1, 2500.0, 0.0, -1250.0)
  1123.     cam.AddCameraNode(1, 6.0, -104500.0, 0.0, -70000.0)
  1124.     cam.SetCameraStartTangentNode(1, 2, 2500.0, 0.0, -1250.0)
  1125.     cam.SetCameraEndTangentNode(1, 2, -1375.0, 0.0, -2500.0)
  1126.     cam.SType=1
  1127.     cam.TType=1
  1128.     cam.CameraStartPath(0)
  1129.     cam.CameraStartPath(1)
  1130.     cam.ChangeNodeFunc=DetieneCamaraPuente
  1131.  
  1132.  
  1133. def GolpeFin():
  1134.  
  1135.     polvareda=Bladex.CreateEntity("PolvoGolpePuente", "Entity Particle System D2", -108250.0, 2250.0, -70500.0)
  1136.     polvareda.D=7500.0, 0.0, 0.0
  1137.     polvareda.ParticleType="LargeDust"
  1138.     polvareda.YGravity=0.0
  1139.     polvareda.Friction=0.2
  1140.     polvareda.PPS=900
  1141.     polvareda.DeathTime=Bladex.GetTime()+3.0/60.0
  1142.     polvareda.Velocity=0.0, -1000.0, 0.0
  1143.     polvareda.RandomVelocity=80.0
  1144.     angulos=(-3.14159/250.0, 3.14159/250.0)
  1145.     vel_ang_iniciales=(0.15, 0.0)
  1146.     vel_ang_finales=(0.0, 0.1)
  1147.     centros=((0.0, 7500.0, 0.0), (0.0, 7500.0, 0.0))
  1148.     ejes=((1, 0, 0), (1, 0, 0))
  1149.     Objects.NRotateObject(puentelevadizomovil, angulos, vel_ang_iniciales, vel_ang_finales, centros, ejes, Objects.REL)
  1150.     Bladex.AddScheduledFunc(Bladex.GetTime()+3.0, ReiniciaCamaraPuente, ())
  1151.     puentelevadizo.ExclusionMask=0
  1152.     pers1=Bladex.GetEntity("330kngt")
  1153.     pers2=Bladex.GetEntity("331kngt")
  1154.     if pers1 and pers1.Life>0:
  1155.         pers1.UnFreeze()
  1156.         pers1.Position=-96619, -9256, -54029
  1157.         pers1.Angle=5.68
  1158.     if pers2 and pers2.Life>0:
  1159.         pers2.UnFreeze()
  1160.         pers2.Position=-122000, -8770, -13000
  1161.         pers2.GoToJogging=1
  1162.         pers2.GoTo(-117000, -8770, -48000)
  1163.  
  1164.  
  1165. def InicioApertura():
  1166.  
  1167.     puentelevadizomovil.estado=1
  1168.     angulos=(3.14159/18.0, 5.0*3.14159/54.0, 3.14159/54.0, -3.14159/220.0, 3.14159/220.0)
  1169.     vel_ang_iniciales=(0.1, 0.25, 0.25, 0.25, 0.0)
  1170.     vel_ang_finales=(0.25, 0.25, 0.25, 0.0, 0.1)
  1171.     son_durante=(looppuentelevadizo, looppuentelevadizo, looppuentelevadizo, "", "")
  1172.     son_finales=("", "", atranquepuentelevadizo, "", "")
  1173.     centros=((0.0, 7500.0, 0.0), (0.0, 7500.0, 0.0), (0.0, 7500.0, 0.0), (0.0, 7500.0, 0.0), (0.0, 7500.0, 0.0))
  1174.     ejes=((1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0))
  1175.     Objects.NRotateObject(puentelevadizomovil, angulos, vel_ang_iniciales, vel_ang_finales, centros, ejes, Objects.REL, (), son_durante, son_finales)
  1176.  
  1177.  
  1178. def FinApertura():
  1179.  
  1180.     MueveCamaraPuente()
  1181.     puentelevadizomovil.estado=0
  1182.     angulos=(3.14159/9.0, 11.0*3.14159/54.0, 3.14159/54.0)
  1183.     vel_ang_iniciales=(0.1, 0.25, 0.25)
  1184.     vel_ang_finales=(0.25, 0.25, 0.15)
  1185.     son_durante=(looppuentelevadizo, looppuentelevadizo, looppuentelevadizo)
  1186.     son_finales=("", golpepuentelevadizo, "")
  1187.     centros=((0.0, 7500.0, 0.0), (0.0, 7500.0, 0.0), (0.0, 7500.0, 0.0))
  1188.     ejes=((1, 0, 0), (1, 0, 0), (1, 0, 0))
  1189.     Objects.NRotateObject(puentelevadizomovil, angulos, vel_ang_iniciales, vel_ang_finales, centros, ejes, Objects.REL, (), son_durante, son_finales, "", (), GolpeFin)
  1190.  
  1191.  
  1192. def BajaPuente():
  1193.  
  1194.     if (puentelevadizomovil.estado):
  1195.         FinApertura()
  1196.     else:
  1197.         InicioApertura()
  1198.         if char.Position[0]>-104500:
  1199.             pers=Bladex.GetEntity("331kngt")
  1200.         else:
  1201.             pers=Bladex.GetEntity("330kngt")
  1202.         if pers and pers.Life>0:
  1203.             pers.Freeze()
  1204.             pers.RemoveFromWorldWithChilds()
  1205.  
  1206.  
  1207. #*************************************************************************************************
  1208. #*************************************************************************************************
  1209. #*************************************************************************************************
  1210. #*******************************                                        **************************
  1211. #*******************************   Definiciones para Prisioners.py      **************************
  1212. #*******************************                                        **************************
  1213. #*************************************************************************************************
  1214. #*************************************************************************************************
  1215.  
  1216.  
  1217. def PrsHerido(entity_name):
  1218.   person=Bladex.GetEntity(entity_name)
  1219.   person.Data.Agoniza(entity_name)
  1220.  
  1221. def PrsMatado(entity_name):
  1222.   person=Bladex.GetEntity(entity_name)
  1223.   person.Data.Muere(entity_name)
  1224.  
  1225. ##################################
  1226. #     Prisioneros quejandose     #
  1227. ##################################
  1228.  
  1229. def QuejaPeriodica(prisionero):
  1230.   if prisionero.Data.Muerto:
  1231.     return
  1232.   prisionero.Data.Agoniza(prisionero.Name)
  1233.   variation=whrandom.uniform(-5.0, 5.0)
  1234.   Bladex.AddScheduledFunc(Bladex.GetTime()+15.0+variation, QuejaPeriodica, (prisionero,))
  1235.  
  1236. def IniciaPrisioneros(sector_index, entity_name):
  1237.   sectorinic.OnEnter=""
  1238.   QuejaPeriodica(prisionerovivo1)
  1239.   QuejaPeriodica(prisionerovivo2)
  1240.   prisioneromuerto.Life=-20
  1241.  
  1242.  
  1243. #*************************************************************************************************
  1244. #*************************************************************************************************
  1245. #*************************************************************************************************
  1246. #*******************************                                        **************************
  1247. #*******************************   Definiciones para Puertas.py         **************************
  1248. #*******************************                                        **************************
  1249. #*************************************************************************************************
  1250. #*************************************************************************************************
  1251.  
  1252. ##funciones abrir-cerrar##
  1253. def AbrePuertaLlaveen():
  1254.     puertaen.OpenDoor()
  1255.  
  1256. def Abrerastmaz1():
  1257.  
  1258.     desplazamientos=(1500.0, 1500.0)
  1259.     vectores=((0.0, -1.0, 0.0), (0.0, -1.0, 0.0))
  1260.     vel_iniciales=(0.0, 4000)
  1261.     vel_finales=(4000.0, 500)
  1262.     
  1263.     #sonidos asociados a la puerta-objeto rastmaz1
  1264.     son_iniciales=("", "")
  1265.     son_durante=(sonidorastrillo, sonidorastrillo)
  1266.     son_finales=("", golpemetalmediano)
  1267.     Objects.NDisplaceObject(rastmaz1din, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1268.  
  1269. def Cierrarastmaz1():
  1270.  
  1271.     desplazamientos=(1500.0, 1500.0, 700.0, 700.0, 250.0, 250.0)
  1272.     vectores=((0.0, 1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0))
  1273.     vel_iniciales=(0.0, 4000, 8000.0, 0.0, 6000.0, 0.0)
  1274.     vel_finales=(4000.0, 8000, 0.0, 6000.0, 0.0, 3000.0)
  1275.     
  1276.     #sonidos asociados a la puerta-objeto rastmaz1
  1277.     son_iniciales=("", "", "", "", "", "")
  1278.     son_durante=(sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo)
  1279.     son_finales=("", golpemetalmediano,"",golpemetalmediano,"",golpemetalmediano)
  1280.     Objects.NDisplaceObject(rastmaz1din, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1281.     
  1282. def Abrerastmaz2():
  1283.  
  1284.     desplazamientos=(1500.0, 1500.0)
  1285.     vectores=((0.0, -1.0, 0.0), (0.0, -1.0, 0.0))
  1286.     vel_iniciales=(0.0, 4000)
  1287.     vel_finales=(4000.0, 500)
  1288.  
  1289.     #sonidos asociados a la puerta-objeto rastmaz2
  1290.     son_iniciales=("", "")
  1291.     son_durante=(sonidorastrillo, sonidorastrillo)
  1292.     son_finales=("", golpemetalmediano)
  1293.     Objects.NDisplaceObject(rastmaz2din, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1294.     
  1295. def Cierrarastmaz2():
  1296.  
  1297.     desplazamientos=(1500.0, 1500.0, 700.0, 700.0, 250.0, 250.0)
  1298.     vectores=((0.0, 1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0))
  1299.     vel_iniciales=(0.0, 4000, 8000.0, 0.0, 6000.0, 0.0)
  1300.     vel_finales=(4000.0, 8000, 0.0, 6000.0, 0.0, 3000.0)
  1301.  
  1302.     #sonidos asociados a la puerta-objeto rastmaz2
  1303.     son_iniciales=("", "", "", "", "", "")
  1304.     son_durante=(sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo)
  1305.     son_finales=("", golpemetalmediano,"",golpemetalmediano,"",golpemetalmediano)
  1306.     Objects.NDisplaceObject(rastmaz2din, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1307.  
  1308. def Abrerastmaz3():
  1309.  
  1310.     desplazamientos=(1500.0, 1500.0)
  1311.     vectores=((0.0, -1.0, 0.0), (0.0, -1.0, 0.0))
  1312.     vel_iniciales=(0.0, 4000)
  1313.     vel_finales=(4000.0, 500)
  1314.  
  1315.     #sonidos asociados a la puerta-objeto rastmaz3
  1316.     son_iniciales=("", "")
  1317.     son_durante=(sonidorastrillo, sonidorastrillo)
  1318.     son_finales=("", golpemetalmediano)
  1319.     Objects.NDisplaceObject(rastmaz3din, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1320.  
  1321. def Cierrarastmaz3():
  1322.  
  1323.     desplazamientos=(1500.0, 1500.0, 700.0, 700.0, 250.0, 250.0)
  1324.     vectores=((0.0, 1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0))
  1325.     vel_iniciales=(0.0, 4000, 8000.0, 0.0, 6000.0, 0.0)
  1326.     vel_finales=(4000.0, 8000, 0.0, 6000.0, 0.0, 3000.0)
  1327.  
  1328.     #sonidos asociados a la puerta-objeto rastmaz3
  1329.     son_iniciales=("", "", "", "", "", "")
  1330.     son_durante=(sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo)
  1331.     son_finales=("", golpemetalmediano,"",golpemetalmediano,"",golpemetalmediano)
  1332.     Objects.NDisplaceObject(rastmaz3din, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1333.  
  1334. def CierraPuertaLlaveen(sectorindex,entityname):
  1335.     puertaen.CloseDoor()
  1336.  
  1337. def AbrePuerta1():
  1338.     global p1yaabierta
  1339.     puerta1.OpenDoor()
  1340.     if not p1yaabierta:
  1341.         pers=Bladex.GetEntity("330kngt")
  1342.         pers.Position=-79000, -9256, -42000
  1343.         pers.GoTo(-96619, -9256, -54029)
  1344.         p1yaabierta=1
  1345.  
  1346. def CierraPuerta1():
  1347.     puerta1.CloseDoor()
  1348.  
  1349. def AbrePuertaLlave2():
  1350.     puerta2.OpenDoor()
  1351.  
  1352. def CierraPuertaLlave2():
  1353.     puerta2.CloseDoor()
  1354.  
  1355. def AbrePuertaLlave3():
  1356.     puerta3.OpenDoor()
  1357.  
  1358. def CierraPuertaLlave3():
  1359.     puerta3.CloseDoor()
  1360.     
  1361. def CierraPuertaLlave33(sectorindex,entityname):
  1362.     puerta3.CloseDoor()
  1363.     
  1364. def AbrePuertaLlave4():
  1365.     puerta4.OpenDoor()
  1366.  
  1367. def CierraPuertaLlave4():
  1368.     puerta4.CloseDoor()
  1369.  
  1370. def AbrePuertaLlave5():
  1371.     puerta5.OpenDoor()
  1372.  
  1373. def CierraPuertaLlave5():
  1374.     puerta5.CloseDoor()
  1375.  
  1376. def AbrePuertaLlave6():
  1377.     global armaduraencontrada
  1378.     puerta6.OpenDoor()
  1379.     if armaduraencontrada:
  1380.         return
  1381.     armaduraencontrada=1
  1382.     Bladex.ExeMusicEvent(Bladex.GetMusicEvent("recompensa"))
  1383.  
  1384. def CierraPuertaLlave6():
  1385.     puerta6.CloseDoor()
  1386.  
  1387. def AbrePuertaLlave9():
  1388.     puerta9.OpenDoor()
  1389.  
  1390. def CierraPuertaLlave9():
  1391.     puerta9.CloseDoor()
  1392.  
  1393. def AbrePuertaLlave7():
  1394.     puerta7.OpenDoor()
  1395.  
  1396. def CierraPuertaLlave7():
  1397.     puerta7.CloseDoor()
  1398.  
  1399. def AbrePuerta8():
  1400.     puerta8.OpenDoor()
  1401.  
  1402. def CierraPuerta8():
  1403.     puerta8.CloseDoor()
  1404.  
  1405. def AbrePuertaLlave10():
  1406.     puerta10.OpenDoor()
  1407.  
  1408. def CierraPuertaLlave10():
  1409.     puerta10.CloseDoor()
  1410. ##funciones abrir-cerrar##
  1411.  
  1412. def FinCamaraRaspat():
  1413.     cam=Bladex.GetEntity("Camera")
  1414.     cam.SetPersonView("Player1")
  1415.     cam.Cut()
  1416.     Bladex.SetListenerPosition(1)
  1417.     Bladex.ActivateInput()
  1418.  
  1419. def Abrerastpat():
  1420.  
  1421.     desplazamientos=(1650.0, 1500.0)
  1422.     vectores=((0.0, -1.0, 0.0), (0.0, -1.0, 0.0))
  1423.     vel_iniciales=(0.0, 1000)
  1424.     vel_finales=(1000.0, 500)
  1425.     
  1426.     #sonidos asociados a la puerta-objeto rastpat
  1427.     son_iniciales=("", "")
  1428.     son_durante=(sonidorastrillo, sonidorastrillo)
  1429.     son_finales=("", golpemetalmediano)
  1430.     Objects.NDisplaceObject(rastpatdin, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1431.     Bladex.DeactivateInput()
  1432.     Bladex.SetListenerPosition(2)
  1433.     AuxFuncs.MoveCamFromTo(-95150.0, -14250.0, 42200.0, -91650.0, -9950.0, 49250.0, -101450.0, -12350.0, 34600.0, -93650.0, -7200.0, 39800.0, 6.0)
  1434.     Bladex.AddScheduledFunc(Bladex.GetTime()+7.0, FinCamaraRaspat, ())
  1435.  
  1436. def Cierrarastpat():
  1437.  
  1438.     desplazamientos=(1650.0, 1500.0, 700.0, 700.0, 250.0, 250.0)
  1439.     vectores=((0.0, 1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0))
  1440.     vel_iniciales=(0.0, 4000, 8000.0, 0.0, 6000.0, 0.0)
  1441.     vel_finales=(4000.0, 8000, 0.0, 6000.0, 0.0, 3000.0)
  1442.     
  1443.     #sonidos asociados a la puerta-objeto rastpat
  1444.     son_iniciales=("", "", "", "", "", "")
  1445.     son_durante=(sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo)
  1446.     son_finales=("", golpemetalmediano,"",golpemetalmediano,"",golpemetalmediano)
  1447.     Objects.NDisplaceObject(rastpatdin, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1448.  
  1449. def Cierrarastfin(sectorindex,entityname):
  1450.     
  1451.     if entityname=='Player1':
  1452.  
  1453.         desplazamientos=(1980.0, 1950.0, 700.0, 700.0, 250.0, 250.0)
  1454.         vectores=((0.0, 1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0), (0.0, -1.0, 0.0), (0.0, 1.0, 0.0))
  1455.         vel_iniciales=(0.0, 4000, 8000.0, 0.0, 6000.0, 0.0)
  1456.         vel_finales=(4000.0, 8000, 0.0, 6000.0, 0.0, 3000.0)
  1457.     
  1458.         #sonidos asociados a la puerta-objeto rastfin
  1459.         son_iniciales=("", "", "", "", "", "")
  1460.         son_durante=(sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo, sonidorastrillo)
  1461.         son_finales=("", golpemetalmediano,"",golpemetalmediano,"",golpemetalmediano)
  1462.         Objects.NDisplaceObject(rastfindin, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1463.         sr1.OnEnter=""
  1464.  
  1465. def AbrePuertaCaos():
  1466.     puertacaos.OpenDoor()
  1467.  
  1468. def CierraPuertaCaos(sectorindex,entityname):
  1469.     puertacaos.CloseDoor()
  1470.  
  1471. def CierraPuertaRagnar():
  1472.     puertaragnar.CloseDoor()
  1473. ##funciones abrir-cerrar##
  1474.  
  1475. def Abrerastrag():
  1476.  
  1477.     desplazamientos=(2250.0, 1000.0)
  1478.     vectores=((0.0, -1.0, 0.0), (0.0, -1.0, 0.0))
  1479.     vel_iniciales=(0.0, 2000)
  1480.     vel_finales=(2000.0, 500)
  1481.     
  1482.     #sonidos asociados a la puerta-objeto rastrag
  1483.     son_iniciales=("", "")
  1484.     son_durante=(sonidorastrillo, sonidorastrillo)
  1485.     son_finales=("", golpemetalmediano)
  1486.     Objects.NDisplaceObject(rastragdin, desplazamientos, vectores, vel_iniciales, vel_finales, (), son_durante, son_finales)
  1487.  
  1488. def AbrePuertaTres():
  1489.     puertatres.OpenDoor()
  1490.     enem = Bladex.GetEntity("tres1kngt")
  1491.     enem.Blind = 0
  1492.     enem.Deaf = 0
  1493.  
  1494. #*************************************************************************************************
  1495. #*************************************************************************************************
  1496. #*************************************************************************************************
  1497. #*******************************                                        **************************
  1498. #*******************************   Definiciones para Trampa_pinchos.py  **************************
  1499. #*******************************                                        **************************
  1500. #*************************************************************************************************
  1501. #*************************************************************************************************
  1502.  
  1503.  
  1504. #############################################################################################
  1505. #
  1506. #                                        PINCHOS
  1507. #
  1508. #############################################################################################
  1509.  
  1510. def ReactivarTecho():
  1511.     global Trampa_Estado
  1512.     #print ("Reactivando Trampa")
  1513.     Sonido_Trampa_Reactivada.Play(-124000,-25000,-100000,0)
  1514.     Trampa_Estado = 1;
  1515.  
  1516. def TrampaSubida(sld_name):
  1517.     polvo1=Bladex.CreateEntity("Polvo1", "Entity Particle System D2", -123000, -27000, -96000)
  1518.     polvo1.ParticleType="SpDust"
  1519.     polvo1.D=-3600, 0, 0
  1520.     polvo1.YGravity=0.0
  1521.     polvo1.Friction=0.2
  1522.     polvo1.PPS=480
  1523.     polvo1.Velocity=0.0, 3000.0, -2000.0
  1524.     polvo1.RandomVelocity=30.0
  1525.     polvo1.Time2Live=60
  1526.     polvo1.DeathTime=Bladex.GetTime()+5.0/60.0
  1527.     polvo2=Bladex.CreateEntity("Polvo2", "Entity Particle System D2", -123000, -27000, -104500)
  1528.     polvo2.ParticleType="SpDust"
  1529.     polvo2.D=-3600, 0, 0
  1530.     polvo2.YGravity=0.0
  1531.     polvo2.Friction=0.2
  1532.     polvo2.PPS=480
  1533.     polvo2.Velocity=0.0, 3000.0, 2000.0
  1534.     polvo2.RandomVelocity=30.0
  1535.     polvo2.Time2Live=60
  1536.     polvo2.DeathTime=Bladex.GetTime()+5.0/60.0
  1537.     DesactivarPincho("Pincho1")
  1538.     DesactivarPincho("Pincho2")
  1539.     DesactivarPincho("Pincho3")
  1540.     DesactivarPincho("Pincho4")
  1541.     DesactivarPincho("Pincho5")
  1542.     DesactivarPincho("Pincho6")
  1543.     DesactivarPincho("Pincho7")
  1544.     DesactivarPincho("Pincho8")
  1545.     DesactivarPincho("Pincho9")
  1546.     DesactivarPincho("Pincho10")
  1547.     DesactivarPincho("Pincho11")
  1548.     Sonido_Trampa_Subiendo1.Stop()
  1549.     Sonido_Hit2.Play(-124000,-25000,-100000,0)
  1550.     Bladex.AddScheduledFunc(Bladex.GetTime()+1.5,ReactivarTecho,())
  1551.  
  1552.  
  1553. def SubirTecho():
  1554.     arenilla1=Bladex.CreateEntity("Arenilla1", "Entity Particle System D2", -123000, -26500, -96000)
  1555.     arenilla1.D=-3600, 0, 0
  1556.     arenilla1.ParticleType="Sand"
  1557.     arenilla1.YGravity=4900.0
  1558.     arenilla1.Friction=0.2
  1559.     arenilla1.RandomVelocity=10.0
  1560.     arenilla1.PPS=512
  1561.     arenilla1.Time2Live=32
  1562.     arenilla1.DeathTime=Bladex.GetTime()+6.5
  1563.     arenilla2=Bladex.CreateEntity("Arenilla2", "Entity Particle System D2", -123000, -26500, -104500)
  1564.     arenilla2.D=-3600, 0, 0
  1565.     arenilla2.ParticleType="Sand"
  1566.     arenilla2.YGravity=4900.0
  1567.     arenilla2.Friction=0.2
  1568.     arenilla2.RandomVelocity=10.0
  1569.     arenilla2.PPS=512
  1570.     arenilla2.Time2Live=32
  1571.     arenilla2.DeathTime=Bladex.GetTime()+6.5
  1572.     Techo_Pinchos1.sld_area().OnStopFunc = TrampaSubida
  1573.     Techo_Pinchos1.sld_area().SlideTo(0,-100,-200)
  1574.     Techo_Pinchos2.sld_area().SlideTo(0,-100,-200)
  1575.     Techo_Pinchos3.sld_area().SlideTo(0,-100,-200)
  1576.     Techo_Pinchos1.sld_area().HitFunc = None
  1577.     Techo_Pinchos2.sld_area().HitFunc = None
  1578.     Techo_Pinchos3.sld_area().HitFunc = None
  1579.     Sonido_Trampa_Subiendo1.Play(-124000,-22000,-100000,0)
  1580.     Sonido_Trampa_Subiendo2.Play(-124000,-22000,-100000,0)
  1581.  
  1582.  
  1583. def BajarTecho():
  1584.     Techo_Pinchos1.sld_area().OnStopFunc = TrampaBajada
  1585.     Techo_Pinchos1.sld_area().SlideTo(4600,6600,4800)
  1586.     Techo_Pinchos2.sld_area().SlideTo(4600,6600,4800)
  1587.     Techo_Pinchos3.sld_area().SlideTo(4600,6600,4800)
  1588.     Techo_Pinchos1.sld_area().HitFunc = Doors.DoorHit
  1589.     Techo_Pinchos2.sld_area().HitFunc = Doors.DoorHit
  1590.     Techo_Pinchos3.sld_area().HitFunc = Doors.DoorHit
  1591.     #Sonido_Trampa_Bajando1.Play(-124000,-25000,-100000,0)
  1592.     Sonido_Trampa_Bajando2.Play(-124000,-25000,-100000,0)
  1593.  
  1594.  
  1595. def TrampaBajada(sld_name):
  1596.     #Char = Bladex.GetEntity("Player1")
  1597.     polvo3=Bladex.CreateEntity("Polvo3", "Entity Particle System D2", -123000, -22000, -96000)
  1598.     polvo3.ParticleType="SpDust"
  1599.     polvo3.D=-3600, 0, 0
  1600.     polvo3.YGravity=0.0
  1601.     polvo3.Friction=0.2
  1602.     polvo3.PPS=480
  1603.     polvo3.Velocity=0.0, -2000.0, 4000.0
  1604.     polvo3.RandomVelocity=40.0
  1605.     polvo3.Time2Live=60
  1606.     polvo3.DeathTime=Bladex.GetTime()+3.0/60.0
  1607.     polvo4=Bladex.CreateEntity("Polvo4", "Entity Particle System D2", -123000, -22000, -104500)
  1608.     polvo4.ParticleType="SpDust"
  1609.     polvo4.D=-3600, 0, 0
  1610.     polvo4.YGravity=0.0
  1611.     polvo4.Friction=0.2
  1612.     polvo4.PPS=480
  1613.     polvo4.Velocity=0.0, -2000.0, -4000.0
  1614.     polvo4.RandomVelocity=40.0
  1615.     polvo4.Time2Live=60
  1616.     polvo4.DeathTime=Bladex.GetTime()+3.0/60.0
  1617.     Bladex.AddScheduledFunc(Bladex.GetTime() + 1.5,SubirTecho,())
  1618.     #Sonido_Trampa_Bajando1.Stop()
  1619.     #Sonido_Trampa_Bajando2.Stop()
  1620.     Sonido_Hit2.Play(-124000,-22000,-100000,0)
  1621.  
  1622. ##############    TECHO ############
  1623.  
  1624. def PinchoSigueTecho(Nombre,Tiempo):
  1625.     Techo = Bladex.GetEntity("TechoPinchos")
  1626.     Pincho = Bladex.GetEntity(Nombre)
  1627.     X = Pincho.Position[0]
  1628.     Z = Pincho.Position[2]
  1629.     D = Techo.Displacement    
  1630.     Y = -26100 + D
  1631.     Pincho.Position = X,Y,Z
  1632.  
  1633. def ActivarPincho(Nombre):
  1634.     Pincho = Bladex.GetEntity(Nombre)
  1635.     Bladex.CreateTimer("Timer60",1.0/60.0)
  1636.     #Pincho.Weapon = 1
  1637.     Pincho.Solid = 0
  1638.     #Pincho.Static = 1
  1639.     Pincho.TimerFunc = PinchoSigueTecho
  1640.     Pincho.SubscribeToList("Timer60")
  1641.  
  1642. def DesactivarPincho(Nombre):
  1643.     Pincho = Bladex.GetEntity(Nombre)
  1644.     Pincho.RemoveFromList("Timer60")
  1645.  
  1646. def DesactivarTrampaPinchos():    
  1647.     global Trampa_Estado
  1648.     Trampa_Estado = 0    
  1649.     #Techo_Pinchos.OpenDoor()
  1650.  
  1651.     SubirTecho()
  1652.  
  1653. def ActivarTecho():    
  1654.     #Techo_Pinchos.CloseDoor()
  1655.     BajarTecho()
  1656.     ActivarPincho("Pincho1")
  1657.     ActivarPincho("Pincho2")
  1658.     ActivarPincho("Pincho3")
  1659.     ActivarPincho("Pincho4")
  1660.     ActivarPincho("Pincho5")
  1661.     ActivarPincho("Pincho6")
  1662.     ActivarPincho("Pincho7")
  1663.     ActivarPincho("Pincho8")
  1664.     ActivarPincho("Pincho9")
  1665.     ActivarPincho("Pincho10")
  1666.     ActivarPincho("Pincho11")
  1667.         
  1668.  
  1669. def ActivarTrampaPinchos(Sector,Entity_Name):    
  1670.     global Trampa_Puerta_Abandonada
  1671.     global Trampa_Estado
  1672.     #print("Entrando Trampa")
  1673.     if (Trampa_Estado==1 and Trampa_Puerta_Abandonada==0):
  1674.         Bladex.AddScheduledFunc(Bladex.GetTime()+0.5,ActivarTecho,())
  1675.         Sonido_Trampa_Activada.Play(-124000,-25000,-100000)
  1676.         #print("Trampa Activada")
  1677.         Trampa_Puerta_Abandonada = 0
  1678.         Trampa_Estado = 0
  1679.  
  1680. def AbandonarPuerta(Sector,Entity_Name):
  1681.     global Trampa_Puerta_Abandonada
  1682.     Trampa_Puerta_Abandonada = 1
  1683.  
  1684. #*************************************************************************************************
  1685. #*************************************************************************************************
  1686. #*************************************************************************************************
  1687. #*******************************                                        **************************
  1688. #*******************************   Definiciones para Trampa_flechas.py  **************************
  1689. #*******************************                                        **************************
  1690. #*************************************************************************************************
  1691. #*************************************************************************************************
  1692.  
  1693.  
  1694. def PararFlecha(Arrow_P,Tiempo):
  1695.     Arrow = Bladex.GetEntity(Arrow_P.Lanzar)
  1696.     Arrow.MessageEvent(Reference.MESSAGE_STOP_WEAPON,0,0)    
  1697.     Arrow.MessageEvent(Reference.MESSAGE_STOP_TRAIL, 0,0)
  1698.     Arrow.Orientation    = Arrow_P.Orientation
  1699.     Arrow.Position        = Arrow_P.Position
  1700.     Arrow.Scale            = Arrow_P.Scale
  1701.     #Arrow_P.Sound.Stop()
  1702.  
  1703.  
  1704. def PasoPolvo(polvoposition, paso, trampa):
  1705.  
  1706.     if paso:
  1707.         if (trampa):
  1708.             despl=1150
  1709.         else:
  1710.             despl=-1150
  1711.         polvoflecha=Bladex.CreateEntity("PolvoFlecha3", "Entity Particle System D1", polvoposition[0]+despl, polvoposition[1], polvoposition[2])
  1712.         polvoflecha.ParticleType="Dust3"
  1713.         polvoflecha.YGravity=0.0
  1714.         polvoflecha.Friction=0.2
  1715.         polvoflecha.PPS=60
  1716.         polvoflecha.Time2Live=15
  1717.         polvoflecha.DeathTime=Bladex.GetTime()+3.0/60.0
  1718.     else:
  1719.         if (trampa):
  1720.             despl=950
  1721.         else:
  1722.             despl=-950
  1723.         polvoflecha=Bladex.CreateEntity("PolvoFlecha2", "Entity Particle System D1", polvoposition[0]+despl, polvoposition[1], polvoposition[2])
  1724.         polvoflecha.ParticleType="Dust2"
  1725.         polvoflecha.YGravity=0.0
  1726.         polvoflecha.Friction=0.2
  1727.         polvoflecha.PPS=60
  1728.         polvoflecha.Time2Live=15
  1729.         polvoflecha.DeathTime=Bladex.GetTime()+3.0/60.0
  1730.         Bladex.AddScheduledFunc(Bladex.GetTime()+2.0/60.0, PasoPolvo, (polvoposition, 1, trampa),"PasoPolvo")
  1731.  
  1732.  
  1733.  
  1734. def LanzarFlecha(Arrow_P,Tiempo):        
  1735.     Arrow = Bladex.GetEntity(Arrow_P.Lanzar)
  1736.  
  1737.     if (Arrow_P.Estado == 1):
  1738.         #print ("Lanzando",Arrow_P.Lanzar)
  1739.         polvoposition=Arrow.Position[0], Arrow.Position[1]+70, Arrow.Position[2]
  1740.         char=Bladex.GetEntity("Player1")
  1741.         if (char.Position[0]<-135000.0):
  1742.             despl=750
  1743.             trampa=1
  1744.         else:
  1745.             despl=-750
  1746.             trampa=0
  1747.         Arrow.MessageEvent(Reference.MESSAGE_START_WEAPON,0,0)
  1748.         Arrow.MessageEvent(Reference.MESSAGE_START_TRAIL, 0,0)
  1749.         
  1750.         Arrow.Fly(40000 * Arrow_P.Avance,0,0)
  1751.         #Arrow_P.Ultimo_Lanzamiento = Bladex.GetTime()
  1752.         Arrow_P.Sound.Play(Arrow.Position[0],Arrow.Position[1],Arrow.Position[2],0)
  1753.         polvoflecha=Bladex.CreateEntity("PolvoFlecha", "Entity Particle System D1", polvoposition[0]+despl, polvoposition[1], polvoposition[2])
  1754.         polvoflecha.ParticleType="Dust1"
  1755.         polvoflecha.YGravity=0.0
  1756.         polvoflecha.Friction=0.2
  1757.         polvoflecha.PPS=60
  1758.         polvoflecha.Time2Live=15
  1759.         polvoflecha.DeathTime=Bladex.GetTime()+3.0/60.0
  1760.         Bladex.AddScheduledFunc(Bladex.GetTime()+2.0/60.0, PasoPolvo, (polvoposition, 0, trampa),"PasoPolvo")
  1761.         Bladex.AddScheduledFunc(Bladex.GetTime() + Arrow_P.Tiempo_Parada,PararFlecha,(Arrow_P,0),"PararFlecha")
  1762.         Bladex.AddScheduledFunc(Bladex.GetTime() + Arrow_P.Tiempo_Lanzamiento,LanzarFlecha,(Arrow_P,0),"LanzarFlecha")
  1763.  
  1764.  
  1765.  
  1766. def ActivarFlecha(Name,Tiempo):    
  1767.     Arrow = Bladex.GetEntity(Name)
  1768.     #print(Arrow.Data.Lanzar," Activado")    
  1769.     Arrow.Data.Estado = 1
  1770.     Bladex.AddScheduledFunc(Tiempo,LanzarFlecha,(Arrow.Data,0),"LanzarFlecha")
  1771.  
  1772. def DesactivarFlecha(Name):    
  1773.     Arrow = Bladex.GetEntity(Name)
  1774.     #print(Arrow.Data.Lanzar," Desactivado")
  1775.     Arrow.Data.Estado = 0
  1776.  
  1777. def ActivarTrampaFlechas(sector,entity_Name):
  1778.     global Trampa_Flechas_Activada1
  1779.     global Trampa_Flechas    
  1780.     global Player_Intro1
  1781.  
  1782.     if (entity_Name == "Player1"):
  1783.         if (Trampa_Flechas == 0):
  1784.             #print("Trampa Flechas Activada")            
  1785.             Player_Intro1 = 1
  1786.             if (Trampa_Flechas_Activada1 == 0):
  1787.                 Tiempo = Bladex.GetTime()            
  1788.                 ActivarFlecha("Pivote10",Tiempo + 1)#0.6)
  1789.                 ActivarFlecha("Pivote11",Tiempo + 0)
  1790.                 ActivarFlecha("Pivote12",Tiempo + 1.5)#0.9)
  1791.                 ActivarFlecha("Pivote13",Tiempo + 0.5)#0.3)
  1792.                 char = Bladex.GetEntity("Player1")
  1793.                 Sonido_Flechas_Activadas.Play(-141000,-7000,char.Position[2],0)
  1794.                 Trampa_Flechas_Activada1 = 1
  1795.                 
  1796.         
  1797.         Trampa_Flechas = Trampa_Flechas + 1            
  1798.  
  1799. def DesactivarTrampa1():
  1800.     global Trampa_Flechas_Activada1
  1801.     global Player_Intro1
  1802.     global Tiempo_DesactivacionFlechas1
  1803.     Tiempo = Bladex.GetTime()
  1804.     #print ("Bucle Desactivacion: Tiempo Actual ",Tiempo,"Tiempo Des ",Tiempo_DesactivacionFlechas1)
  1805.     if (Tiempo_DesactivacionFlechas1 <= Tiempo):
  1806.         if (Player_Intro1 == 0):        
  1807.             #print("Desactivado")
  1808.             DesactivarFlecha("Pivote10")
  1809.             DesactivarFlecha("Pivote11")
  1810.             DesactivarFlecha("Pivote12")
  1811.             DesactivarFlecha("Pivote13")
  1812.             Trampa_Flechas_Activada1 = 0
  1813.             Sonido_Flechas_Desactivadas.Play(-141000,-7000,-100000,0)
  1814.             return
  1815.     else:
  1816.         #print("Configurada Siguiente Desactivacion")
  1817.         Bladex.AddScheduledFunc(Tiempo_DesactivacionFlechas1,DesactivarTrampa1,(),"DesactivarTrampa1")
  1818.  
  1819.  
  1820. def DesactivarTrampaFlechas(sector,entity_Name):    
  1821.     global Tiempo_DesactivacionFlechas1
  1822.     global Trampa_Flechas
  1823.     global Player_Intro1
  1824.  
  1825.     if (entity_Name == "Player1"):
  1826.         Trampa_Flechas = Trampa_Flechas - 1
  1827.  
  1828.         if (Trampa_Flechas == 0):
  1829.             #print("Trampa Flechas Desactivada")
  1830.             Player_Intro1 = 0
  1831.             Tiempo = Bladex.GetTime()
  1832.             if (Tiempo_DesactivacionFlechas1 <= Tiempo):
  1833.                 Bladex.AddScheduledFunc(Tiempo + 6.0,DesactivarTrampa1,(),"DesactivarTrampa1")
  1834.             Tiempo_DesactivacionFlechas1 = Tiempo + 6.1
  1835.  
  1836.  
  1837. def ActivarTrampaFlechas2(sector,entity_Name):
  1838.     global Trampa_Flechas_Activada2
  1839.     global Trampa_Flechas    
  1840.     global Player_Intro2
  1841.  
  1842.     if (entity_Name == "Player1"):
  1843.         if (Trampa_Flechas == 0):
  1844.             Player_Intro2 = 1
  1845.             if (Trampa_Flechas_Activada2 == 0):
  1846.                 #print("Trampa Flechas Activada")
  1847.                 Tiempo = Bladex.GetTime()
  1848.                 ActivarFlecha("Pivote0",Tiempo + 0)
  1849.                 ActivarFlecha("Pivote1",Tiempo + 0.5)#0.3)
  1850.                 ActivarFlecha("Pivote2",Tiempo + 1)#0.6)
  1851.                 ActivarFlecha("Pivote3",Tiempo + 1.5)#0.9)                
  1852.                 Sonido_Flechas_Activadas.Play(-125000,-7000,char.Position[2],0)
  1853.                 Trampa_Flechas_Activada2 = 1
  1854.  
  1855.         Trampa_Flechas = Trampa_Flechas + 1
  1856.  
  1857. def DesactivarFlechas2():
  1858.     global Trampa_Flechas_Activada2    
  1859.     global Player_Intro2
  1860.  
  1861.     Tiempo = Bladex.GetTime()
  1862.     if (Tiempo_DesactivacionFlechas2 <= Tiempo):
  1863.         if (Player_Intro2 == 0):
  1864.             Trampa_Flechas_Activada2 = 0
  1865.             DesactivarFlecha("Pivote0")
  1866.             DesactivarFlecha("Pivote1")
  1867.             DesactivarFlecha("Pivote2")
  1868.             DesactivarFlecha("Pivote3")
  1869.             Sonido_Flechas_Desactivadas.Play(-125000,-7000,-100000,0)
  1870.             return
  1871.     else:
  1872.         Bladex.AddScheduledFunc(Tiempo_DesactivacionFlechas2,DesactivarFlechas2,(),"DesactivarFlechas2")
  1873.  
  1874.  
  1875. def DesactivarTrampaFlechas2(sector,entity_Name):
  1876.     global Tiempo_DesactivacionFlechas2
  1877.     global Trampa_Flechas_Activada2    
  1878.     global Trampa_Flechas
  1879.     global Player_Intro2
  1880.  
  1881.     if (entity_Name == "Player1"):
  1882.         Trampa_Flechas = Trampa_Flechas - 1
  1883.  
  1884.         if (Trampa_Flechas == 0):        
  1885.             #print("Trampa Flechas Desactivada")
  1886.             Player_Intro2 = 0
  1887.             Tiempo = Bladex.GetTime()
  1888.             if (Tiempo_DesactivacionFlechas2 <= Tiempo):                
  1889.                 Bladex.AddScheduledFunc(Tiempo + 6.0,DesactivarFlechas2,(),"DesactivarFlechas2")
  1890.             Tiempo_DesactivacionFlechas2 = Tiempo + 6.0
  1891.  
  1892. def StickArrow(Sticker,Stick):
  1893.     #print (Sticker," Clavada en ",Stick)
  1894.     Arrow = Bladex.GetEntity(Sticker)
  1895.     Flecha = Arrow.Data        
  1896.     NewArrow = Traps_C.Prueba(Flecha.Nombre,Flecha.Flechas_Clavadas)    
  1897.     Flecha.Flechas_Clavadas = Flecha.Flechas_Clavadas + 1
  1898.     Arrow = Bladex.CreateEntity(NewArrow,"Flecha",Flecha.Position[0],Flecha.Position[1],Flecha.Position[2])
  1899.     Arrow.Orientation = Flecha.Orientation
  1900.     Arrow.Scale = Flecha.Scale
  1901.     Arrow.Arrow = 1
  1902.     Flecha.Lanzar = NewArrow
  1903.     Arrow.Data = Flecha
  1904.     Arrow.StickFunc = StickArrow
  1905.  
  1906.  
  1907. def InitArrow(Name,Displacement):    
  1908.     A = def_class.FLECHA()
  1909.     A.Avance = Displacement
  1910.     Arrow = Bladex.GetEntity(Name)
  1911.     
  1912.     A.Sound = Bladex.CreateSound('..\\..\\Sounds\\dart-shoot.wav', 'LaunchArrow')
  1913.     A.Sound.Volume=0.3
  1914.     A.Sound.MinDistance=7000
  1915.     A.Sound.MaxDistance=10000
  1916.         
  1917.     A.Nombre      = Name
  1918.     A.Lanzar      = Name
  1919.     A.Position    = Arrow.Position
  1920.     A.Orientation = Arrow.Orientation    
  1921.     A.Scale       = Arrow.Scale
  1922.     
  1923.     Arrow.Data = A
  1924.     Arrow.StickFunc = StickArrow
  1925.  
  1926. #*************************************************************************************************
  1927. #*************************************************************************************************
  1928. #*************************************************************************************************
  1929. #*******************************                                        **************************
  1930. #*******************************   Definiciones para Talking_Knights.py **************************
  1931. #*******************************                                        **************************
  1932. #*************************************************************************************************
  1933. #*************************************************************************************************
  1934.  
  1935.  
  1936. #######################################################
  1937. # Setup the sector
  1938. #######################################################
  1939.  
  1940. def LookAtTerry():
  1941.     # Lets set up a temporary camera to watch the fun
  1942.     #pdb.set_trace()
  1943.     cam = Bladex.GetEntity("Camera")
  1944.     cam.LookAtTime=5
  1945.     cam.Position=-84589, -9783, -6064
  1946.     cam.LookAt("Terry")        
  1947.  
  1948. def OnEnterScript(SectorIndex, EntityName):
  1949.     if EntityName=="Player1":        
  1950.         #pdb.set_trace()
  1951.         Reference.debugprint ("Player1 has entered sector "+`SectorIndex`)
  1952.  
  1953.         eric = Bladex.GetEntity ("Eric")
  1954.         if eric:
  1955.             #eric.Position=-91610, -8748, -7916
  1956.             eric.Angle=4.4
  1957.             eric.Data.StartTalking1 ()
  1958.         terry = Bladex.GetEntity ("Terry")        
  1959.         #LookAtTerry()
  1960.         if terry:
  1961.             #terry.Position =-86500, -8748, -7250        
  1962.             terry.Angle=1.5
  1963.             terry.Data.StartTalking2 ()
  1964.         sec=Bladex.GetSector(SectorIndex)
  1965.         sec.OnEnter=0
  1966.         Bladex.CheckPyErrors()
  1967.  
  1968. def Reset():
  1969.     targetSec=Bladex.GetSector(-80340, -7696, 1430)
  1970.     targetSec.OnEnter=OnEnterScript
  1971.  
  1972.  
  1973. #*************************************************************************************************
  1974. #*************************************************************************************************
  1975. #*************************************************************************************************
  1976. #*******************************                                        **************************
  1977. #*******************************   Definiciones para Ragnar_Actions.py  **************************
  1978. #*******************************                                        **************************
  1979. #*************************************************************************************************
  1980. #*************************************************************************************************
  1981.  
  1982. def FuncionNula(entity_name):
  1983.     pass
  1984.  
  1985.  
  1986. ####################################################
  1987. #     Lanza sonido activacion trampa cuchillas     #
  1988. ####################################################
  1989.  
  1990. def SonidoActivacion(sector_index, entity_name):
  1991.     if entity_name=="Player1":
  1992.         cuchillasactivadas.Play(-141790.0, -23249.0, -99000.0, 0)
  1993.         sectorsonidocuchillas.OnEnter=""
  1994.  
  1995.  
  1996. def RagnarDesaparece(newpos=(0.0, 0.0, 0.0), seefunc=FuncionNula):
  1997.     ragnar.LaunchAnimation("Rgn_rlx_1h")
  1998.     ragnar.Position=newpos
  1999.     ragnar.SeeFunc=seefunc
  2000.     ragnar.SetOnFloor()
  2001.  
  2002.  
  2003. def GuardaEnGuardia(person):
  2004. #    print "En guardia!"
  2005.     person.LaunchAnimation("Tkn_rlx_f")
  2006.     person.SetOnFloor()
  2007.  
  2008. def GuardaAtaca(person):
  2009. #    print "Al ataque!"    
  2010.     person.Blind=0    
  2011.     person.Data.LaunchMyWatch(person.Name)
  2012.  
  2013. def VozMatadle():
  2014.     matadle.Play(-142500.0, -12750.0, -110700.0, 0)
  2015.  
  2016. def DesactivaCambiosMusicaGuardaespaldas():
  2017.     Bladex.ExeMusicEvent(Bladex.GetMusicEvent("musicatorre"))
  2018.     Bladex.RemoveTriggerSectorFunc("MusicaTorre4", "OnEnter")
  2019.     Bladex.RemoveTriggerSectorFunc("Silencio7", "OnEnter")
  2020.  
  2021. def RagnarEscapaEnemigos():
  2022.     ragnar.Position=-142500.0, -12750.0, -110700.0
  2023.     ragnar.SetOnFloor()
  2024.     ragnar.Data.CommandingAndEscaping()
  2025.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.5, VozMatadle, ())
  2026.     Bladex.AddScheduledFunc(Bladex.GetTime()+1.5, GuardaEnGuardia, (guarda1,))
  2027.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.5, GuardaEnGuardia, (guarda2,))
  2028.     Bladex.AddScheduledFunc(Bladex.GetTime()+2.5, GuardaAtaca, (guarda1,))
  2029.     Bladex.AddScheduledFunc(Bladex.GetTime()+1.5, GuardaAtaca, (guarda2,))
  2030.     newpos=(-141790.0, -23249.0, -109700.0)
  2031.     Bladex.AddScheduledFunc(Bladex.GetTime()+3.0, RagnarDesaparece, (newpos, RagnarVeJugadorCuchillas))
  2032.     Bladex.AddScheduledFunc(Bladex.GetTime()+5.0, DesactivaCambiosMusicaGuardaespaldas, ())
  2033.  
  2034.  
  2035. def RagnarVeJugadorEnemigos(entity_name):
  2036. #    print "Ragnar te ha visto!"
  2037.     Bladex.ExeMusicEvent(Bladex.GetMusicEvent("ragnarguardaesp"))
  2038.     Bladex.AddScheduledFunc(Bladex.GetTime()+1.0, RagnarEscapaEnemigos, ())
  2039.     ragnar.SeeFunc=FuncionNula
  2040.     AbreCam.LastTime = 0.01
  2041.     AbreCam.PTS = [
  2042.            ((-141702.115016, -14316.6380986, -87909.7057797), (-142366.840758, -13202.867904, -92220.6355477), 0.75), 
  2043.            ((-144069.469394, -13937.8515248, -100755.479001), (-143651.345295, -13319.4865829, -103140.823385), 1.0), 
  2044.            ((-141904.34761, -13938.8061199, -100580.194813), (-142164.701223, -13320.5010469, -102987.636615), 3.0)]
  2045.     AbreCam.AbreCam()    
  2046.  
  2047. ##########################################################
  2048. #     Ragnar activando trampa de cuchillas y huyendo     #
  2049. ##########################################################
  2050.  
  2051. def RagnarEscapaCuchillas():
  2052.     ragnar.Position = (-141790.0, -23249.0, -109700.0)
  2053.     ragnar.SetOnFloor()
  2054.     ragnar.Data.Escaping(1)
  2055.     newpos=(-128000.0, -31750.0, -92000.0)
  2056.     Bladex.AddScheduledFunc(Bladex.GetTime()+2.5, RagnarDesaparece, (newpos,))
  2057.  
  2058.  
  2059. def RagnarVeJugadorCuchillas(entity_name):
  2060. #    print "Ragnar te ha visto!"
  2061.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.5, RagnarEscapaCuchillas, ())
  2062.     ragnar.SeeFunc=FuncionNula
  2063.  
  2064. ###
  2065. # Final con fundido
  2066. ###
  2067.  
  2068. def FundidoFin():
  2069.     char=Bladex.GetEntity("Player1")
  2070.     Bladex.DeactivateInput()
  2071.     Scorer.SetVisible(0)
  2072.     AuxFuncs.FadeTo(2.5, 28.5)
  2073.     Bladex.ExeMusicEvent(Bladex.GetMusicEvent("documentoragnar"))
  2074.     Bladex.AddScheduledFunc(Bladex.GetTime()+3.0, GameText.WriteText, ("M2T4",))       # aparicion text en pantalla
  2075.     if Reference.DEMO_MODE==0:
  2076.         Bladex.AddScheduledFunc(Bladex.GetTime()+28.0,GotoMapVars.EndOfLevel,())
  2077.         GotoMapVars.MapText(2,"D_M2_T2")
  2078.     else:
  2079.         Bladex.AddScheduledFunc(Bladex.GetTime()+28.0,Bladex.LoadLevel,("Casa",))
  2080.  
  2081.  
  2082. def PolvoPuertaRagnar():
  2083.     polvopuertarg=Bladex.CreateEntity("PolvoPuertaRg", "Entity Particle System D2", -143875, -30275, -95625)
  2084.     polvopuertarg.ParticleType="RgDoorDust"
  2085.     polvopuertarg.D=3250, 0, 0
  2086.     polvopuertarg.YGravity=0.0
  2087.     polvopuertarg.Friction=0.2
  2088.     polvopuertarg.PPS=960
  2089.     polvopuertarg.Velocity=0.0, -2600.0, -2600.0
  2090.     polvopuertarg.RandomVelocity=40.0
  2091.     polvopuertarg.Time2Live=40
  2092.     polvopuertarg.DeathTime=Bladex.GetTime()+3.0/60.0
  2093.  
  2094. def CamaraSigueJugador(obj_name, time):
  2095.     char=Bladex.GetEntity("Player1")
  2096.     cam=Bladex.GetEntity("Camera")
  2097.     cam.TPos=char.Position
  2098.  
  2099. def ReiniciaCamaraRagnar():
  2100.     global original_dist
  2101.     cam=Bladex.GetEntity("Camera")
  2102.     cam.SetPersonView("Player1")
  2103. #    cam.Dist=original_dist
  2104.     cam.Cut()
  2105.     cam.Dist=original_dist
  2106. #    AuxFuncs.ActivateKeyboard()
  2107.     Bladex.ActivateInput()
  2108.  
  2109. def CamaraSigueRagnar(obj_name, time):
  2110.     cam=Bladex.GetEntity("Camera")
  2111.     #cam.TPos=ragnar.Position
  2112.     cam.TPos=ragnar.Position[0], ragnar.Position[1]+2300.0, ragnar.Position[2]
  2113.  
  2114. def RagnarAtaca():
  2115.     ragnar.Blind=0
  2116.     ragnar.Deaf=0
  2117.     ragnar.SeeFunc = ragnar.Data.StdSeeTheEnemy
  2118.     ragnar.Data.LaunchMyWatch(ragnar.Name)
  2119.  
  2120. def RagnarEnGuardia():
  2121. #    ragnar.LaunchAnmType("rlx_f")
  2122.     ragnar.LaunchAnimation("Rgn_rlx_f")
  2123.     person.SetOnFloor()    
  2124.     Bladex.AddScheduledFunc(Bladex.GetTime()+3.0, RagnarAtaca, ())
  2125.     Bladex.AddScheduledFunc(Bladex.GetTime()+2.0, ReiniciaCamaraRagnar, ())
  2126.  
  2127. def RagnarSePara(entity_name):
  2128.     cam=Bladex.GetEntity("Camera")
  2129.     cam.RemoveFromList("Timer60")
  2130.     cam.TimerFunc=""
  2131.     ragnar.Face(1.05)
  2132.     Bladex.AddScheduledFunc(Bladex.GetTime()+1.0, RagnarEnGuardia, ())
  2133.  
  2134. def RagnarSigueAndando(entity_name):
  2135.     global nodo_n
  2136. #    print "estoy en el nodo "+`nodo_n`
  2137.     nodo_pos=[(-130500, -32750, -101250), (-132500, -32750, -102500), (-135000, -32750, -103000)]
  2138.     ragnar.GoTo(nodo_pos[nodo_n][0], nodo_pos[nodo_n][1], nodo_pos[nodo_n][2])
  2139.     if nodo_n==2:
  2140.         ragnar.RouteEndedFunc=RagnarSePara
  2141.     else:
  2142.         nodo_n=nodo_n+1
  2143.         ragnar.RouteEndedFunc=RagnarSigueAndando
  2144.  
  2145. def RagnarEmpiezaAndar():
  2146.     cam=Bladex.GetEntity("Camera")
  2147. #    dialogoragnar.Play(-132500, -32750, -102500, 0)
  2148. #    ragnar.GoTo(-129250.0, -32750.0, -99250.0)
  2149.     ragnar.GoTo(-130500.0, -32750.0, -100000.0)
  2150.     ragnar.RouteEndedFunc=RagnarSigueAndando
  2151.     ragnar.LookAtEntity("Player1")
  2152.     cam.TimerFunc=CamaraSigueRagnar
  2153.     cam.SubscribeToList("Timer60")
  2154.  
  2155. def DetieneTargetRagnar(entity_name, camera_element, node):
  2156.     if node==1:
  2157.         global nodo_n
  2158.         nodo_n=0
  2159.         cam=Bladex.GetEntity("Camera")
  2160.         cam.TType=0
  2161.         cam.CameraClearPath(1)
  2162.         Bladex.AddScheduledFunc(Bladex.GetTime()+1.0, RagnarEmpiezaAndar, ())
  2163.  
  2164. def MiraRagnar():
  2165.     cam=Bladex.GetEntity("Camera")
  2166.     tpos=cam.TPos
  2167.     rgpos=ragnar.Position
  2168.     # Path target
  2169.     cam.AddCameraNode(1, 1.0, tpos[0], tpos[1], tpos[2])
  2170.     cam.AddCameraNode(1, 1.0, rgpos[0], rgpos[1]+3000.0, rgpos[2])
  2171.     cam.AddCameraNode(1, 1.0, -130000.0, -31750.0, -88000.0)
  2172.     cam.TType=1
  2173.     cam.CameraStartPath(1)
  2174.     cam.ChangeNodeFunc=DetieneTargetRagnar
  2175.  
  2176. def RieRagnar():
  2177.     rgpos=ragnar.Position
  2178.     risaragnar.Play(rgpos[0], rgpos[1], rgpos[2], 0)
  2179.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.5, MiraRagnar, ())
  2180.  
  2181. def DetieneTargetCuervos(entity_name, camera_element, node):
  2182.     if node==1:
  2183.         cam=Bladex.GetEntity("Camera")
  2184.         cam.TType=0
  2185.         cam.CameraClearPath(1)
  2186.         Bladex.AddScheduledFunc(Bladex.GetTime()+1.5, RieRagnar, ())
  2187.  
  2188. def MiraCuervos():
  2189.     char=Bladex.GetEntity("Player1")
  2190.     cam=Bladex.GetEntity("Camera")
  2191.     opos=cam.Position
  2192.     tpos=cam.TPos
  2193.     v=tpos[0]-opos[0], tpos[1]-opos[1], tpos[2]-opos[2]
  2194.     vnorm=B3DLib.Normalize(v)
  2195.     cam.ESource="Player1"
  2196.     cam.SType=2
  2197.     # Path target
  2198.     cam.AddCameraNode(1, 2.0, tpos[0]+vnorm[0]*2000, tpos[1]+vnorm[1]*2000, tpos[2]+vnorm[2]*2000)
  2199.     cam.AddCameraNode(1, 2.0, -127000.0, -43900.0, -106100.0)
  2200.     cam.AddCameraNode(1, 2.0, -127000.0, -46900.0, -106100.0)
  2201.     cam.TType=1
  2202.     cam.CameraStartPath(1)
  2203.     cam.ChangeNodeFunc=DetieneTargetCuervos
  2204.     graznidocuervo.Play(-135000.0, -42000.0, -102000.0, 0)
  2205.     char.Face(4.0*3.14159/3.0)
  2206.  
  2207. def SigueConCuervos(entity_name):
  2208.     global original_dist
  2209.     cam=Bladex.GetEntity("Camera")
  2210.     cam.RemoveFromList("Timer60")
  2211.     cam.TimerFunc=""
  2212.     cam.SetPersonView("Player1")
  2213.     original_dist=cam.Dist
  2214.     cam.Dist=1800.0
  2215.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.5, MiraCuervos, ())
  2216.     ragnar.Position=-127000.0, -31750.0, -92000.0
  2217.     ragnar.Angle=3.14159
  2218.     ragnar.SeeFunc=FuncionNula
  2219.  
  2220. def Camara2RagnarFinalTermina(x,y):
  2221.     cam = Bladex.GetEntity("Camera")
  2222.     cam.SetPersonView("Player1")
  2223.     ScriptSkip.SkipScriptEnd()
  2224.     Bladex.SetListenerPosition(1)
  2225.     Scorer.SetVisible(1)
  2226.     Bladex.AddScheduledFunc(Bladex.GetTime()+3.0, RagnarAtaca, ())
  2227.     #RagnarAtaca()
  2228.  
  2229. def PlayPasitoRagnar1(a,b):
  2230.     _Pasito.Play(ragnar.Position[0], ragnar.Position[1],-ragnar.Position[2], 0)
  2231.  
  2232. def PlayPasitoRagnar2(a,b):
  2233.     _Pasito1.Play(ragnar.Position[0], ragnar.Position[1],-ragnar.Position[2], 0)
  2234.     
  2235.  
  2236. def Camara2RagnarFinal(x,y):
  2237.     cam=Bladex.GetEntity("Camera")
  2238.     cam.SetMaxCamera("end_ragnarCamera02.cam",121,500)
  2239.     
  2240.     cam.AddCameraEvent(176-121,PlayPasitoRagnar2)
  2241.     cam.AddCameraEvent(155-121,PlayPasitoRagnar1)
  2242.     cam.AddCameraEvent(177-121,PlayPasitoRagnar2)
  2243.     cam.AddCameraEvent(198-121,PlayPasitoRagnar1)
  2244.     cam.AddCameraEvent(220-121,PlayPasitoRagnar2)
  2245.     cam.AddCameraEvent(241-121,PlayPasitoRagnar1)
  2246.     cam.AddCameraEvent(267-121,PlayPasitoRagnar2)
  2247.     cam.AddCameraEvent(289-121,PlayPasitoRagnar1)
  2248.     cam.AddCameraEvent(306-121,PlayPasitoRagnar2)
  2249.     cam.AddCameraEvent(325-121,PlayPasitoRagnar1)
  2250.     cam.AddCameraEvent(348-121,PlayPasitoRagnar2)
  2251.     cam.AddCameraEvent(367-121,PlayPasitoRagnar1)
  2252.     cam.AddCameraEvent(389-121,PlayPasitoRagnar2)
  2253.     cam.AddCameraEvent(409-121,PlayPasitoRagnar1)
  2254.     cam.AddCameraEvent(430-121,PlayPasitoRagnar2)
  2255.     cam.AddCameraEvent(453-121,PlayPasitoRagnar1)
  2256.     cam.AddCameraEvent(466-121,PlayPasitoRagnar2)
  2257.  
  2258.     cam.AddCameraEvent(-1,Camara2RagnarFinalTermina)
  2259.     
  2260.     
  2261.  
  2262. def Camara1RagnarCaminante(x,y):
  2263.     ragnar.Position = (-127795.461,-31432.037,-94747.914)
  2264.     ragnar.Angle=3.14159
  2265.     ragnar.Wuea = Reference.WUEA_ENDED
  2266.     ragnar.SetTmpAnmFlags(1,1,1,0,5,1)
  2267.     ragnar.LaunchAnimation("Rgn_end_ragnar_ragnar")
  2268.     ragnar.SetOnFloor()
  2269.     Bladex.AddScheduledFunc(Bladex.GetTime()+1.0, GameText.WriteText, ("M2T3",))       # aparicion text en pantalla
  2270.  
  2271. def EntraHabitacionFinal(sector_index, entity_name):
  2272.     if entity_name=="Player1":
  2273.         ScriptSkip.SkipScriptStart("ragnaranda")
  2274.         sectorfinragnar.OnEnter=""
  2275.         cam=Bladex.GetEntity("Camera")
  2276.         cam.SetMaxCamera("end_ragnarCamera01.cam",0,120)
  2277.         #cam.AddCameraEvent(111,Camara1RagnarCaminante)
  2278.         Bladex.AddScheduledFunc(Bladex.GetTime()+111.0/20.0, Camara1RagnarCaminante,(0,0))
  2279.         cam.AddCameraEvent(-1,Camara2RagnarFinal)
  2280.         Scorer.SetVisible(0)
  2281.  
  2282.         char=Bladex.GetEntity("Player1")
  2283.         char.Angle=3.14159
  2284.         char.Position = (-142408.234,-31634.457,-98412.711)
  2285.         char.Wuea = Reference.WUEA_ENDED
  2286.         char.SetTmpAnmFlags(1,1,1,0,5,1)
  2287.         char.LaunchAnmType("end_ragnar")
  2288.         Bladex.AddScheduledFunc(Bladex.GetTime()+0.25, char.SetOnFloor,())
  2289.  
  2290.         puertaragnar.OnEndCloseFunc=PolvoPuertaRagnar
  2291.         Bladex.AddScheduledFunc(Bladex.GetTime()+1.25, puertaragnar.CloseDoor, ())
  2292.         Bladex.AddScheduledFunc(Bladex.GetTime()+2.0, MusicTool.ExeMusicEvent, ("locuraragnar",))
  2293.         sec=Bladex.GetSector(sector_index)
  2294.         sec.OnEnter=""
  2295.  
  2296.  
  2297. def ActivaCuervosVolando(sector_index, entity_name):
  2298.     if entity_name=="Player1":
  2299.         sectorantesfinragnar.OnEnter=""
  2300.         cuervovolando1.TurnOn()
  2301.         cuervovolando2.TurnOn()
  2302.  
  2303.  
  2304. #*************************************************************************************************
  2305. #*************************************************************************************************
  2306. #*************************************************************************************************
  2307. #*******************************                                        **************************
  2308. #*******************************   Definiciones para traps.py           **************************
  2309. #*******************************                                        **************************
  2310. #*************************************************************************************************
  2311. #*************************************************************************************************
  2312.  
  2313.  
  2314. def StopBlade(blade):
  2315.     blade.TimerFunc=None
  2316.     blade.RemoveFromList("Timer60")
  2317.  
  2318. def RegetBlade1():
  2319.     blade = Bladex.GetEntity("Blade1")
  2320.     Sonido_Cuchilla1_Recogida.Play(blade.Position[0],blade.Position[1],blade.Position[2],0);
  2321.  
  2322. def RegetBlade2():
  2323.     blade = Bladex.GetEntity("Blade2")
  2324.     Sonido_Cuchilla2_Recogida.Play(blade.Position[0],blade.Position[1],blade.Position[2],0);
  2325.  
  2326. def Blade1RTimerFunc(blade_name,time):
  2327.     global b1_time
  2328.     itime=time-b1_time
  2329.     blade=Bladex.GetEntity(blade_name)
  2330.     if(itime<3.0):
  2331.         blade.SetPosition(-138250,-23598,-97000-2666.6*itime,0)
  2332.     blade.Rotate(0.0,1.0,0.0,-0.1,1)
  2333.     if(itime>3.0):
  2334.         StopBlade(blade)
  2335.  
  2336. def Blade2RTimerFunc(blade_name,time):
  2337.     global b2_time
  2338.     global blades_ready
  2339.     itime=time-b2_time
  2340.     blade=Bladex.GetEntity(blade_name)
  2341.     if(itime<3.0):
  2342.         blade.SetPosition(-145250,-23124,-97000-2666.6*itime,0)
  2343.     blade.Rotate(0.0,1.0,0.0,0.1,1)
  2344.     if(itime>3.0):
  2345.         StopBlade(blade)
  2346.         Sonido_TrampaCuchilla_Reactivada.Play(-145250,-23124,-98500,0)        
  2347.         #blades_ready=1
  2348.  
  2349.  
  2350. def RBlade1():
  2351.     global b1_time
  2352.     b1_time=Bladex.GetTime()
  2353.     blade=Bladex.GetEntity("Blade1")
  2354.     #Sonido_Cuchilla1_Activada.Play(blade.Position[0],blade.Position[1],blade.Position[2],0)
  2355.     blade.Solid=0
  2356.     blade.TimerFunc=Blade1RTimerFunc
  2357.     blade.SubscribeToList("Timer60")
  2358.     #Bladex.AddScheduledFunc(Bladex.GetTime()+4.0,StopBlade,("Blade1"))
  2359.     
  2360.  
  2361. def RBlade2():
  2362.     global b2_time
  2363.     b2_time=Bladex.GetTime()
  2364.     blade=Bladex.GetEntity("Blade2")
  2365.     #Sonido_Cuchilla2_Activada.Play(blade.Position[0],blade.Position[1],blade.Position[2],0)
  2366.     blade.Solid=0
  2367.     blade.TimerFunc=Blade2RTimerFunc
  2368.     blade.SubscribeToList("Timer60")
  2369.     #Bladex.AddScheduledFunc(Bladex.GetTime()+4.0,StopBlade,("Blade2"))
  2370. def ApagaLuzChispa(luz):
  2371.  
  2372.     luz.SubscribeToList("Pin")
  2373.  
  2374.  
  2375. def LaunchBlade1():
  2376.     global b1_time
  2377.     Sonido_Cuchilla1_Activada.Play(-138250,-23598,-105000,0)
  2378.     b1_time=Bladex.GetTime()
  2379.     blade=Bladex.GetEntity("Blade1")
  2380.     blade.Position=-138250,-23598,-105000
  2381.     luzchispa1=Bladex.CreateEntity("LuzChispa1", "Entity Spot", blade.Position[0]-200, blade.Position[1], blade.Position[2]+1500)
  2382.     luzchispa1.Color=255, 140, 0
  2383.     luzchispa1.Intensity=1.5
  2384.     luzchispa1.Visible=0
  2385.     luzchispa1.CastShadows=0
  2386.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.6, ApagaLuzChispa,(luzchispa1,))
  2387.     chispas1=Bladex.CreateEntity("Chispas1", "Entity Particle System D1", blade.Position[0], blade.Position[1], blade.Position[2]+1500)
  2388.     chispas1.ParticleType="Spark"
  2389.     chispas1.YGravity=0.0
  2390.     chispas1.Friction=0.0
  2391.     chispas1.PPS=2048
  2392.     chispas1.Velocity=-4000.0, 0.0, -4000.0
  2393.     chispas1.RandomVelocity=30.0
  2394.     chispas1.Time2Live=8
  2395.     chispas1.DeathTime=Bladex.GetTime()+0.6
  2396.     blade.Solid=0
  2397.     blade.MessageEvent(MESSAGE_START_WEAPON,0,0)
  2398.     blade.TimerFunc=Blade1TimerFunc
  2399.     blade.SubscribeToList("Timer60")
  2400.     Bladex.AddScheduledFunc(Bladex.GetTime()+1.0,RegetBlade1,())
  2401.     
  2402.  
  2403. def Blade1TimerFunc(blade_name,time):
  2404.     global b1_time
  2405.     itime=time-b1_time
  2406.     blade=Bladex.GetEntity(blade_name)
  2407.     blade.MessageEvent(MESSAGE_START_WEAPON,0,0)
  2408.     if(itime<1.0):
  2409.         blade.SetPosition(-138250+(-6000.0+6000.0*itime)*itime,-23598,-105000+(16000.0-8000*itime)*itime,0)
  2410.         if (itime<0.6):
  2411.             chispas1=Bladex.GetEntity("Chispas1")
  2412.             chispas1.Position=blade.Position[0], blade.Position[1], blade.Position[2]+1500
  2413.             luzchispa1=Bladex.GetEntity("LuzChispa1")
  2414.             luzchispa1.Position=blade.Position[0]-200, blade.Position[1], blade.Position[2]+1500
  2415.     blade.Rotate(0.0,1.0,0.0,0.6-0.3*itime,1)
  2416.     if(itime>2.0):
  2417.         StopBlade(blade)
  2418.         #RBlades()
  2419.         RBlade1()
  2420.  
  2421. def LaunchBlade2():
  2422.     global b2_time
  2423.     Sonido_Cuchilla2_Activada.Play(-145250,-23124,-105000,0)
  2424.     b2_time=Bladex.GetTime()
  2425.     blade=Bladex.GetEntity("Blade2")
  2426.     blade.Position=-145250,-23124,-105000
  2427.     luzchispa2=Bladex.CreateEntity("LuzChispa2", "Entity Spot", blade.Position[0]+200, blade.Position[1], blade.Position[2]+1500)
  2428.     luzchispa2.Color=255, 140, 0
  2429.     luzchispa2.Intensity=1.5
  2430.     luzchispa2.Visible=0
  2431.     luzchispa2.CastShadows=0
  2432.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.6, ApagaLuzChispa,(luzchispa2,))
  2433.     chispas2=Bladex.CreateEntity("Chispas2", "Entity Particle System D1", blade.Position[0], blade.Position[1], blade.Position[2]+1500)
  2434.     chispas2.ParticleType="Spark"
  2435.     chispas2.YGravity=0.0
  2436.     chispas2.Friction=0.0
  2437.     chispas2.PPS=2048
  2438.     chispas2.Velocity=4000.0, 0.0, -4000.0
  2439.     chispas2.RandomVelocity=30.0
  2440.     chispas2.Time2Live=8
  2441.     chispas2.DeathTime=Bladex.GetTime()+0.6
  2442.     blade.Solid=0
  2443.     blade.MessageEvent(MESSAGE_START_WEAPON,0,0)
  2444.     blade.TimerFunc=Blade2TimerFunc
  2445.     blade.SubscribeToList("Timer60")
  2446.     Bladex.AddScheduledFunc(Bladex.GetTime()+1.0,RegetBlade1,())
  2447.     
  2448.  
  2449. def Blade2TimerFunc(blade_name,time):
  2450.     global b2_time
  2451.     itime=time-b2_time
  2452.     blade=Bladex.GetEntity(blade_name)
  2453.     blade.MessageEvent(MESSAGE_START_WEAPON,0,0)
  2454.     if(itime<1.0):
  2455.         blade.SetPosition(-145250+(6000.0-6000.0*itime)*itime,-23124,-105000+(16000.0-8000*itime)*itime,0)
  2456.         if (itime<0.6):
  2457.             chispas2=Bladex.GetEntity("Chispas2")
  2458.             chispas2.Position=blade.Position[0], blade.Position[1], blade.Position[2]+1500
  2459.             luzchispa2=Bladex.GetEntity("LuzChispa2")
  2460.             luzchispa2.Position=blade.Position[0]+200, blade.Position[1], blade.Position[2]+1500
  2461.     blade.Rotate(0.0,1.0,0.0,-0.6+0.3*itime,1)
  2462.     if(itime>2.0):
  2463.         StopBlade(blade)
  2464.         RBlade2()
  2465.     
  2466.  
  2467. def LaunchBlades():
  2468.     global blades_ready
  2469.     LaunchBlade2()
  2470.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.1,LaunchBlade1,())
  2471.     #slab.SlideTo(0,-200,0)
  2472.     blades_ready=0
  2473.  
  2474. def RBlades():
  2475.     global blades_ready
  2476.     blades_ready=1
  2477.     #if(blades_ready == 0):
  2478.     #    RBlade2()
  2479.     #    RBlade1()
  2480.         #slab.SlideTo(100,100,0)
  2481.  
  2482.  
  2483. def ActivateBlades(SectorIndex,EntyName):
  2484.     if(blades_ready):
  2485.         Sonido_TrampaCuchilla_Activada.Play(-141750,-23000,-99000,0)
  2486.         #lever.state == lever.LEVER_ON
  2487.         #lever.LeverOff()
  2488.         LaunchBlades()
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494. #*************************************************************************************************
  2495. #*************************************************************************************************
  2496. #*************************************************************************************************
  2497. #*******************************                                        **************************
  2498. #*******************************   Definiciones para Musica.py          **************************
  2499. #*******************************                                        **************************
  2500. #*************************************************************************************************
  2501. #*************************************************************************************************
  2502.  
  2503.  
  2504. def ApagaMusicaAlEntrar(trsector_name, entity_name):
  2505.     if entity_name=="Player1":
  2506.         Bladex.ExeMusicEvent(Bladex.GetMusicEvent("emptyloquesea"))
  2507.  
  2508. def EnciendeSuspenseRapido(trsector_name, entity_name):
  2509.     if entity_name=="Player1":
  2510.         Bladex.ExeMusicEvent(Bladex.GetMusicEvent("suspenserapido"))
  2511.  
  2512. def EnciendeMusicaCapilla(trsector_name, entity_name):
  2513.     if entity_name=="Player1":
  2514.         Bladex.ExeMusicEvent(Bladex.GetMusicEvent("musicacapilla"))
  2515.  
  2516. def DesactivaEnciendeMusicaCapilla(trsector_name, entity_name):
  2517.     if entity_name=="Player1":
  2518.         Bladex.RemoveTriggerSectorFunc("MusicaCapilla1", "OnEnter")
  2519.         Bladex.RemoveTriggerSectorFunc("MusicaCapilla2", "OnEnter")
  2520.  
  2521. def EnciendeSuspenseLento(trsector_name, entity_name):
  2522.     if entity_name=="Player1":
  2523.         Bladex.ExeMusicEvent(Bladex.GetMusicEvent("suspenselento"))
  2524.  
  2525. def EnciendeMusicaZonaCaos(trsector_name, entity_name):
  2526.     if entity_name=="Player1":
  2527.         if Bladex.GetEntity("ChaosK1").Life>=800:
  2528.             Bladex.ExeMusicEvent(Bladex.GetMusicEvent("musicazonacaos"))
  2529.         else:
  2530.             Bladex.ExeMusicEvent(Bladex.GetMusicEvent("suspenselento"))
  2531.  
  2532. def EnciendeMusicaTorre(trsector_name, entity_name):
  2533.     if entity_name=="Player1":
  2534.         Bladex.ExeMusicEvent(Bladex.GetMusicEvent("musicatorre"))
  2535.  
  2536. def EnciendeRagnarCuchillas(trsector_name, entity_name):
  2537.     if entity_name=="Player1":
  2538.         Bladex.ExeMusicEvent(Bladex.GetMusicEvent("ragnarcuchillas"))
  2539.         Bladex.RemoveTriggerSectorFunc("RagnarCuchillas", "OnEnter")
  2540.  
  2541. def EnciendeTrampa(trsector_name, entity_name):
  2542.     if entity_name=="Player1":
  2543.         Bladex.ExeMusicEvent(Bladex.GetMusicEvent("musicatrampa"))
  2544.         Bladex.RemoveTriggerSectorFunc(trsector_name, "OnEnter")
  2545.  
  2546. def EnciendeMusicaPendulos(trsector_name, entity_name):
  2547.     if entity_name=="Player1":
  2548.         Bladex.ExeMusicEvent(Bladex.GetMusicEvent("musicapendulos"))
  2549.